почему (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. Теперь он работает отлично.

Другие вопросы по тегам