('未找到Nmap', <class 'nmap.nmap.PortScannerError'>)

10 投票
9 回答
34135 浏览
提问于 2025-04-17 18:40

问题出在哪里呢?

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 个回答

1

我也遇到过同样的问题。只需要在终端里输入:

sudo apt-get install nmap

这样问题就解决了。

15

对于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,再测试一下你的代码。

13

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 中。

撰写回答