why (ModuleNotFoundError: No module named 'scapy') shows up?

why (ModuleNotFoundError: No module named 'scapy') shows up?

我使用 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'\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')。我已经使用 pip 安装了 crcmod。

在许多系统上 pip 默认为版本 2,而不是版本 3。最佳做法是始终通过输入 pip2pip3 来指定您想要的版本使用默认 pip.

在这种情况下,运行宁 pip3 install scapy 应该可以解决错误。

编辑: 您还需要 运行 pip3 install crcmod,对于您的脚本所依赖的其他包也是如此。