NMAP模块无PortScanner()属性报错,重装python-nmap无效如何解决?
针对
nmap has no attribute PortScanner()报错的解决方案 首先先回滚之前的错误操作:将你移动到python_nmap-0.6.4.egg-info文件夹内的nmap.py文件移回原路径/home/kali/.local/lib/python3.9/site-packages/nmap/,egg-info为Python包的元数据存储目录,存放功能代码不会被解释器识别加载。
之后按以下步骤逐一排查:
- 排查同名文件冲突
检查你编写的扫描脚本文件名是否为nmap.py,或脚本运行的当前工作目录下是否存在nmap.py文件、nmap命名的文件夹,若存在请重命名为其他不冲突的名称,同时删除同目录下生成的__pycache__缓存文件夹。Python导入模块时会优先读取当前工作目录下的同名文件,会覆盖你安装的第三方python-nmap库。 - 清理残留旧版本文件
直接删除无实际模块代码的python_nmap-0.6.3.egg-info文件夹,避免跨版本元数据冲突导致的导入异常。 - 验证模块导入路径匹配
执行以下代码确认当前Python解释器的搜索路径包含python-nmap的安装路径:
检查输出列表中是否包含import sys print(sys.path)/home/kali/.local/lib/python3.9/site-packages,如果没有可以先临时添加路径测试导入:
若此时导入正常,可将该路径添加到系统import sys sys.path.append("/home/kali/.local/lib/python3.9/site-packages") from nmap import PortScannerPYTHONPATH环境变量中永久生效。 - 调整导入语法
若以上操作完成后仍报错,可以直接指定到类所在的模块层级导入,代码示例:from nmap.nmap import PortScanner scanner = PortScanner()
内容的提问来源于stack exchange,提问作者Potato-man
相关产品推荐
相关产品推荐

