不确定我缺少什么。我正在尝试导入nmap模块并使用nmap.PortScanner()。我正在使用Linux。当我在终端上运行程序时,我得到:
File "/usr/local/lib/python2.7/dist-packages/nmap/nmap.py", line 137, in __init__
raise PortScannerError('nmap program was not found in path')
nmap.nmap.PortScannerError: 'nmap program was not found in path'
当我跑步时:
which nmap
我得到:
/usr/bin/nmap
执行时
nmap --version
我得到:
Nmap version 7.60 ( https://nmap.org )
Platform: x86_64-pc-linux-gnu
Compiled with: liblua-5.3.3 openssl-1.1.0g nmap-libssh2-1.8.0 libz-1.2.8 libpcre-8.39 libpcap-1.8.1 nmap-libdnet-1.12 ipv6
Compiled without:
Available nsock engines: epoll poll select
答案 0 :(得分:0)
您需要在“ /usr/local/lib/python2.7/dist-packages/nmap/nmap.py”中编辑第137行 然后包含您的nmap目录:“ usr / bin / nmap”。
此错误是因为“ nmap.py”无法确定nmap二进制目录。
祝你好运
答案 1 :(得分:0)
道歉,回答了旧问题,但也遇到了同样的问题,并通过更改nmap_search_path
文件中的nmap.py
解决了这个问题。
在nmap.py中,__init__
函数将初始化PortScanner模块,它具有一些默认搜索路径以检测系统上的nmap
和nmap
版本。如果在路径中找不到PortScannerError
,则可能会引发nmap
异常。
对于我检查过的python-nmap-0.6.1
版本,在nmap.py
文件中有以下代码行。
def __init__(self, nmap_search_path=('nmap', '/usr/bin/nmap', '/usr/local/bin/nmap', '/sw/bin/nmap', '/opt/local/bin/nmap')):