我用python3编写了一个程序,它通过DNP3协议读取和响应数据, 它打算在 rpi3 上运行 我在笔记本电脑上编写了代码,然后将其带到 rpi,安装了所有依赖项,但我收到一个我不知道如何处理的错误:ModuleNotFoundError: No module named 'scapy'
我成功地安装了带有pip install scapy
的 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'x05x64'
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')
.我已经使用 pip 安装了 crcmod。
在许多系统上,pip
默认为版本 2,而不是版本 3。最佳做法是始终通过输入pip2
或pip3
而不是使用默认pip
来指定所需的版本。
在这种情况下,运行pip3 install scapy
应该可以解决错误。
编辑: 您还需要运行pip3 install crcmod
,同样适用于脚本所依赖的每个其他包。
就我而言,我试图导入tensorflow_data_validation
,但遇到了与(ModuleNotFoundError: No module named 'crcmod')
相同的错误。当我尝试 pip 安装crcmod
时,我收到消息说crcmod
已经存在。我什至尝试卸载并安装软件包,但它不起作用。
最后解决了我的问题,运行pip uninstall crcmod
,然后使用 conda 重新安装它,conda install -c conda-forge crcmod
.现在它完美运行。