为什么会出现(ModuleNotFoundError:没有名为'scapy'的模块)?

时间:2019-12-26 06:52:12

标签: python-3.x raspberry-pi3 raspbian scapy dnp3

我使用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。

1 个答案:

答案 0 :(得分:4)

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

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

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