Почему моя функция .scan из модуля Python-NMAP показывает ошибку атрибута 'str'? - PullRequest
0 голосов
/ 01 ноября 2018

Сначала я установил модуль nmap в PyCharm, но получил, как и многие другие, ошибку для моей функции nmap.PortScanner.

Поэтому я удалил nmap и установил python-nmap .

Теперь у меня проблема с выполнением команды:

import nmap
ns = nmap.PortScanner
ns.scan('My.IP.Add.ress', '1-1024', '-v')
print(ns.scaninfo())

Я получаю для второй строки сообщение об ошибке: AttributeError: у объекта 'str' нет атрибута '_nmap_path'

Однако, просматривая все примеры этого, покажите именно эти строки кода. Может кто-нибудь объяснить, что происходит?

Мой редактор также показывает для ns.scaninfo () предупреждение о том, что параметр «self» не заполнен. Опять же, это не то, что показывают примеры. Я очень смущен этим.

Как всегда, большое спасибо за помощь!

1 Ответ

0 голосов
/ 01 ноября 2018

(С момента публикации моего комментария я убедился в том, что это является основной причиной, поэтому отправка в качестве ответа.)

Вам не хватает скобок во второй строке. Следует читать:

ns = nmap.PortScanner()

Как таковой, вы храните класс PortScanner в ns, в отличие от объекта этого класса. Это означает, что когда вы вызываете ns.scan, его первый параметр (который, как ожидается, будет self, объект PortScanner с атрибутом _nmap_path) на самом деле является строкой, которая не имеет атрибута. По той же причине предупреждение вашего редактора о том, что параметр self также не заполнен.

...