Как исправить Python ModuleNotFoundError

Я установил netfilterqueue несколькими способами, клонировав его с GitHub и установив через pip. На python 3.7,3.8,3.9. Netfilterqueue устанавливается только на 3.6 и 3.7, хотя на это потребовалось некоторое время. После установки и тестирования, работает ли netfilterqueue в интерактивном режиме, что я и сделал, я попытался запустить свою программу, которая работала раньше, не работает. Это дает мне ошибку modulenotfound.

ModuleNotFoundError: нет модуля с именем netfilterqueue

Я не знаю, что я делаю неправильно. Pip сообщает мне, что он установлен правильно, но он просто не работает в программе.

ИЗМЕНИТЬ Итак, я не использую pycharm или anaconda, я в основном кодирую VS Code. Но я еще даже не дошел. Я просто запускаю свой скрипт в терминале, и он не может найти модуль из скрипта. Я установил все эти зависимости, и когда я запускаю эту команду, я получаю

Reading package lists... Done
Building dependency tree       
Reading state information... Done
Note, selecting 'python-dev-is-python2' instead of 'python-dev'
build-essential is already the newest version (12.8).
libnetfilter-queue-dev is already the newest version (1.0.3-1).
python-dev-is-python2 is already the newest version (2.7.18-8).
The following packages were automatically installed and are no longer required:
  libpython3-dev libpython3.9-dev python3.9-dev
Use 'sudo apt autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 9 not upgraded.

Теперь внезапно pip3 install netfilterqueue для python 3.6 тоже не работает. В моей системе установлены python 3.9 и 2.7, я использую pyenv для управления моей версией python 3.6, чтобы попытаться запустить мой скрипт, для которого требуется netfilterqueue.

ОБНОВЛЕНИЕ: я перезагрузил свой компьютер и начал с новой Kali live, и он работал с python 3.8.4, который шел с Kali live. Я не уверен, что я сделал, чтобы нарушить мою установку. Я только что установил его, установил KDE и док-станцию ​​latte и обновил, я думаю, это может быть из-за добавленного мной тестового репозитория, но я не уверен, может ли это быть проблемой?


person jamesc    schedule 31.12.2020    source источник


Ответы (1)


Согласно этому вопросу Как мне установить netfilterqueue для python3? это выглядит вроде этого netfilterqueue не работает с python 3.7, но отлично работает с 3.6, поэтому настройте всю среду так, чтобы она была в версии 3.6, но в anaconda или pycharm через интерпретатор проекта

  1. Также вам необходимо установить это согласно документации https://pypi.org/project/NetfilterQueue/ и на второй ответ в предыдущем вопросе

    sudo apt-get install build-essential python-dev libnetfilter-queue-dev
    
  2. Также, если вы работаете с записной книжкой или пауком anaconda jupyter, скорее всего, интерпретатор не может найти, где установлен пакет. Самый простой способ исправить это - просто переустановить с помощью флага --user. По умолчанию Anaconda извлекает ваши пользовательские пакеты. Попробуйте pip3 install netfilterqueue --user, а затем посмотрите, сможете ли вы его импортировать.

       pip3 uninstall netfilterqueue
       pip3 install netfilterqueue --user
    

После этого перезапустите анаконду.
Также иногда проблема связана с инструментами настройки, вы можете попробовать их переустановить.

person Dalia Elbanna    schedule 31.12.2020
comment
Пожалуйста, предоставьте дополнительную информацию о том, в какой среде вы работаете с anaconda или pycharm? с какой именно версией Python работает интерпретатор проекта? - person Dalia Elbanna; 31.12.2020
comment
Я отредактировал вопрос вверху - person jamesc; 31.12.2020