У меня проблемы с импортом nmap в pycharm

Я пытаюсь запустить этот фрагмент кода в pycharm:

import nmap
nm = nmap.PortScanner()

но безуспешно:

импортировать файл nmap "C:\Users\Hélder Júnior\PycharmProjects\security\nmap.py", строка 2, в nm = nmap.PortScanner() AttributeError: модуль 'nmap' не имеет атрибута 'PortScanner

Я попытался установить библиотеки nmap через pycharm также через pip в cmd.


person Helder Júnior    schedule 13.05.2019    source источник


Ответы (5)


Здесь вы явно путаете два стиля импорта. Вы можете либо импортировать модуль, а затем обратиться к классу, используя modulename.ClassName()

import nmap
nm = nmap.PortScanner()

Или псевдоним имени импортированного модуля, а затем используйте псевдоним как aliasName.ClassName()

import nmap as nm
netmap = nm.PortScanner()

Для получения дополнительной информации рассмотрите возможность просмотра документации: https://pypi.org/project/python-nmap/

person Devesh Kumar Singh    schedule 13.05.2019
comment
Извините, я пытался: nm = nmap.PortScanner() AttributeError: модуль 'nmap' не имеет атрибута 'PortScanner' - person Helder Júnior; 13.05.2019
comment
Вам нужно убедиться, что пип, который вы используете для установки nmap, привязан к интерпретатору Python PyCharm, чтобы убедиться в этом, просто откройте интерпретатор python для пипа, который вы использовали для установки библиотеки, если код работает на интерпретаторе, свяжите этот интерпретатор к PyCharm или найдите интерпретатор, привязанный к Pycharm, и установите его там, если код не работает, убедитесь, что вы используете правильный pip для установки библиотеки! @HelderJunior - person Devesh Kumar Singh; 13.05.2019
comment
В cmd я получаю ту же ошибку. AttributeError: модуль nmap не имеет атрибута portscanner - person Helder Júnior; 13.05.2019
comment
Какую версию Python вы используете и какую версию pip вы использовали для установки nmap? - person Devesh Kumar Singh; 13.05.2019
comment
Я установил nmap через pip также в пакетах pycharm, в pycharm у меня установлены nmap0.0.1, nmap-vscan1.1.0, pip19.0.3, python-nmap0.6.1, setuptools40.8.0... - person Helder Júnior; 13.05.2019
comment
мой питон 3.7 - person Helder Júnior; 13.05.2019
comment
О, понял, вы должны переименовать свой файл во что-то кроме nmap.py, C:\Users\Hélder Júnior\PycharmProjects\security\nmap.py, может быть, script.py Ваше имя файла путается с библиотекой! @HelderJunior - person Devesh Kumar Singh; 13.05.2019
comment
Нет, вы не поняли мою мысль, измените этот файл C:\Users\Hélder Júnior\PycharmProjects\security\nmap.py" на что-то другое, кроме nmap.py - person Devesh Kumar Singh; 13.05.2019
comment
имеет смысл, но: C:\Users\Hélder Júnior\PycharmProjects\security\venv\Scripts\python.exe C:/Users/Hélder Júnior/PycharmProjects/security/porta_scanner.py Traceback (последний последний вызов): Файл C: /Users/Hélder Júnior/PycharmProjects/security/porta_scanner.py, строка 3, в ‹module› nm = nmap.PortScanner() AttributeError: модуль 'nmap' не имеет атрибута 'PortScanner' Процесс завершен с кодом выхода 1 - person Helder Júnior; 13.05.2019
comment
Вы уверены, что в вашем проекте нет файла с именем nmap.py? @HelderJunior - person Devesh Kumar Singh; 13.05.2019
comment
Также удалите все .pyc файлы из вашего проекта @HelderJúnior. - person Devesh Kumar Singh; 13.05.2019
comment
Я удалю этот проект и попробую создать новый, одну секунду :) - person Helder Júnior; 13.05.2019
comment
Конечно @HelderJunior - person Devesh Kumar Singh; 13.05.2019
comment
Также запустите pip uninstall nmap, pip uninstall python-nmap, pip install python-nmap, чтобы удалить nmap и переустановить python-nmap, если создание нового проекта не работает @HelderJúnior - person Devesh Kumar Singh; 13.05.2019
comment
Большое спасибо, приятель, я создал новый проект и снова установил python-nmap, и все работает .. спасибо, ты мне очень помог. - person Helder Júnior; 13.05.2019

nm - это переменная, а не библиотека. Ваша библиотека nmap, поэтому вам следует использовать nmap.PortScanner()

Используйте nm = nmap.PortScanner()

person vurmux    schedule 13.05.2019

Сначала импортировать, а потом использовать.

import nmap as nm
something = nm.PortScanner()
person RanAB    schedule 13.05.2019

Глядя на ссылку на этот пакет, с вашим кодом все в порядке.

Проблема может быть связана с такими факторами:

  • Вы использовали pip install python-nmap и, возможно, внутри PyCharm вы используете другой интерпретатор Python, не связанный с терминалом.
  • Если вы использовали PyCharm для установки этого пакета, вы должны обязательно использовать интерпретатор, в котором вы его установили.
person JLD    schedule 13.05.2019

Если вы ранее устанавливали nmap, то сначала удалите его, а затем переустановите заново.

pip uninstall nmap

pip install python-nmap

Это должно помочь.

person Arnav Bhattacharya    schedule 21.05.2019