Skip to main content
 首页 » 编程设计

python之为什么我的 Python-NMAP 模块中的 .scan 函数显示 'str' 属性错误

2024年09月03日37findumars

我首先在 PyCharm 中安装了 nmap 模块,但收到了与我的 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”未填充的警告。同样,这不是示例显示的内容。我对此很困惑。

一如既往,非常感谢您的帮助!

请您参考如下方法:

(自发布 my comment 以来,我确信这是根本原因,因此发布作为答案。)

您在第二行缺少一些括号。它应该是:

ns = nmap.PortScanner() 

实际上,您将 PortScanner 类存储在 ns 中,而不是该类的对象。这意味着当您调用 ns.scan 它的第一个参数(它期望是 self 时,PortScanner 对象带有 _nmap_path 属性)实际上是一个字符串,没有属性。同样的原因也存在于您的编辑关于未填充 self 参数的警告背后。