почему (ModuleNotFoundError: нет модуля с именем scapy)?
Я написал программу с использованием python3, которая считывает данные и отвечает на них по протоколу DNP3. Она предназначена для запуска на rpi3. Я написал код на своем ноутбуке, затем перенес его в rpi, установил все зависимости, но я получаю сообщение об ошибке, которое я не понимаю. не знаю, что делать с: ModuleNotFoundError: No module named 'scapy'
Я установил scapy с pip install scapy
успешно.
Я новичок в Python, пожалуйста, помогите мне, tnx
Я не думаю, что это связано, но вот фрагмент кода:
outstation.py:
from dnp3_lib import *
import datetime
from struct import pack, unpack
import sys
import socket
import random
SRC = 1023
DEST = 1010
START_B = b'\x05\x64'
port = 20000
transport_sequence = 0
try:
s = socket.socket()
print ("Socket successfully created!")
s.bind(('', port))
print ("Socket binded to %s" %(port))
s.listen(5)
print ("Socket is Listening...")
# Establish connection with client.
c, addr = s.accept()
print ('Got connection from', addr)
# counter = 0
while True:
try:
# Handle the requests and responces
except Exception as e:
print (e)
c.close()
exit()
c.close()
except socket.error:
print (">>> an err occurred !" + socket.error)
c.close()
exit()
dnp3_lib.py:
from scapy.all import *
import crcmod.predefined
import string
from struct import pack, unpack
.
.
.
# some functions to handle CRC and other things
РЕДАКТИРОВАТЬ:
Я прокомментировал from scapy.all import *
и это показывает (ModuleNotFoundError: No module named 'crcmod')
. Я установил crcmod с помощью pip.
2 ответа
Во многих системах pip
по умолчанию используется версия 2, а не версия 3. Рекомендуется всегда указывать, какую версию вы хотите, вводя либо pip2
или pip3
вместо использования по умолчанию pip
.
В этом случае запускается pip3 install scapy
должен устранить ошибку.
РЕДАКТИРОВАТЬ: вам дополнительно нужно будет запустить pip3 install crcmod
, а также для каждого другого пакета, от которого зависит ваш скрипт.
В моем случае я пытался импортироватьtensorflow_data_validation
и я получил ту же ошибку, что(ModuleNotFoundError: No module named 'crcmod')
. Когда я попытался установить pip, я получил сообщение, чтоcrcmod
уже существует. Я даже пытался удалить и установить пакет, и это не сработало.
Наконец то, что решило мою проблему, было запущеноpip uninstall crcmod
а затем переустановить его с помощью conda,conda install -c conda-forge crcmod
. Теперь он работает отлично.