('未找到Nmap', <class 'nmap.nmap.PortScannerError'>)
问题出在哪里呢?
import nmap
我安装了nmap和python,当我使用 import nmap
时没有任何问题。但是当我使用:
nmap.PortScanner()
就出现了这个错误:
Traceback (most recent call last):
File "<pyshell#3>", line 1, in <module>
nmap.PortScanner()
File "./nmap/nmap.py", line 153, in __init__
raise PortScannerError('nmap program was not found in path. PATH is:{0}'.format(os.getenv('PATH')))
nmap.nmap.PortScannerError: 'nmap program was not found in path. PATH is : /usr/lib /lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games: /usr/local/games'"
9 个回答
我也遇到过同样的问题。只需要在终端里输入:
sudo apt-get install nmap
这样问题就解决了。
对于Windows用户:
我建议在运行你的脚本之前,先关闭所有的终端窗口、IDLE或者其他你当前打开的窗口。
接下来,打开命令行窗口,输入
pip uninstall python-nmap
如果你不确定你的系统上是否安装了Nmap,可以在开始菜单里简单搜索一下
nmap
如果找到了,说明已经安装,可以继续下一步;如果没有,去Nmap的官方下载页面。
下载Windows自安装程序并运行它。记下它安装到哪个目录。
然后去那个目录。对我来说是
C:\Program Files (x86)\Nmap
打开系统的环境变量编辑器,通常可以在
My PC > System Information > Advance settings > Environment Variables
或者右键点击
我的电脑(My PC)或我的计算机(My Computer),然后选择属性,再选择高级设置,最后在高级选项卡底部找到环境变量。
选择Path
,分别为你
和系统
的部分。
点击编辑
,输入Nmap目录的完整路径
例如;C:\Program Files (x86)\Nmap\
点击确定,退出编辑器。
现在回到命令行,输入:pip install python-nmap
。
让它安装完成,然后重启你的ide
,再测试一下你的代码。
python-nmap
这个库似乎依赖于 nmap
,也就是实际进行网络扫描和审计的程序。
你可以在终端里用下面的命令检查一下 nmap
是否在你的 $PATH
中:
which nmap
对于 Debian 系统
在类似 Debian 的系统上,你可以用以下命令安装 nmap
:
apt-get install nmap
对于 Arch Linux:
pacman -Sy nmap
如果已经安装了 nmap
如果你确定已经安装了 nmap
,但觉得它不在你的 $PATH
中,你可能需要把 nmap
安装的目录添加到你的 $PATH
中。
要做到这一点,你需要编辑用户目录下的 .bashrc
文件,或者编辑 /etc/bashrc
(这样会影响所有用户),然后添加以下内容:
export PATH="$PATH:/usr/local/nmap/bin"
记得把 /usr/local/nmap/bin
替换成 nmap
程序实际安装的目录。修改完文件后,确保打开一个新的终端会话,或者输入 exec bash
来刷新。
你还需要确保 nmap
有执行权限(用 chmod +x <file>
来设置)。
当你执行:
nmap --version
你应该能看到类似这样的输出:
Nmap version 6.46 ( http://nmap.org )
Platform: i686-pc-linux-gnu
Compiled with: liblua-5.2.3 openssl-1.0.1g libpcre-8.34 libpcap-1.5.3 nmap-libdnet-1.12 ipv6
Compiled without:
Available nsock engines: epoll poll select
如果看到了这些,说明 nmap
已经安装并且在你的 $PATH
中。