繁体   English   中英

“模块”对象没有属性“ PortScanner”

[英]'module' object has no attribute 'PortScanner'

我正在使用Ubuntu 12.04并安装了python-nmap来创建脚本。 如果我使用IDLE并输入以下内容,则可以正常运行:

import nmap
nm = nmap.PortScanner()
nm.scan('127.0.0.1', '22-443')

但是,如果我在Eclipse中执行此操作,则会收到以下错误:

Traceback (most recent call last):
  File "/home/russ/workspace/ViPyNmap/MyFiles/nmaptest.py", line 2, in <module>
    nm = nmap.PortScanner()
AttributeError: 'module' object has no attribute 'PortScanner'

我已经将egg文件和文件夹添加到了项目的Eclipse路径中,但是没有运气。 这样做之后,我也重新启动了Eclipse,但是没有运气。 对于我对Eclipse和Python的经验不足,我深表歉意,并感谢您的帮助。

您可能安装了软件包“ nmap”,而不是“ python-nmap”:

在此处输入图片说明

因此,只需卸载“ nmap”并安装“ python-nmap”:

pip uninstall nmap
pip install python-nmap

1分析

如果在目录/usr/local/lib/python2.7/dist-packages/nmap/看到源代码nmap.py ,则会发现没有nmap.py类。

2解决方案

2.1方法一

您应该删除包含文件的目录.../nmap/ ,并安装新的软件包nmap或通过python setup.py install在新的软件包目录中。

2.2方法二

您还可以将文件复制nmap.py在新的包目录.../MyFiles/你的PY文件nmaptest.py ,并运行命令python nmaptest.py

祝你好运 !

发生这种情况的原因是,您名为nmap.py的模块现在正在遮盖您尝试使用的预期请求模块。

为了避免这种情况,您应该将模块重命名为其他名称以避免这些情况。 此外,可能还会生成一个nmap.pyc文件,该文件位于nmap.py所在的本地。 确保重命名后也将其删除,因为解释器仍将引用该文件,从而重新产生错误。

解决问题的示例:

将文件重命名为nmapscan.py,删除nmap.pyc并再次运行。

上面的答案在python 2.7中工作正常,但是当我们在python3环境中工作时,以下内容将有助于解决它

pip卸载nmap pip卸载python-nmap pip3安装python-nmap

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM