0
我得到的是nmap的是不是我的路径中找到(使用python-NMAP)的错误。但是,这是在我的路径。PortScannerError“中未找到路径NMAP程序”(但它是在路径)
Nmap的工作,当我在Python执行我的剧本,但是当我使用pyinstaller的代码冻结的.exe文件,当我尝试运行我的代码,我得到这个错误:
Traceback (most recent call last):
File "utils\map_network.py", line 7, in scan_network
File "site-packages\nmap\nmap.py", line 131, in __init__
PortScannerError: 'nmap program was not found in path. PATH is :
C:\\Program Files (x86)\\Intel\\iCLS Client\\;
C:\\Program Files\\Intel\\iCLS Client\\;
C:\\ProgramData\\Oracle\\Java\\javapath;
C:\\windows\\system32;C:\\windows;
C:\\windows\\System32\\Wbem;
C:\\windows\\System32\\WindowsPowerShell\\v1.0\\;
C:\\Python27\\;
C:\\Python27\\Scripts\\;
C:\\Program Files (x86)\\Intel\\Intel(R) Management Engine Components\\DAL;
C:\\Program Files\\Intel\\Intel(R) Management Engine Components\\DAL;
C:\\Program Files (x86)\\Intel\\Intel(R) Management Engine Components\\IPT;
C:\\Program Files\\Intel\\Intel(R) Management Engine Components\\IPT;
C:\\Program Files (x86)\\Nmap;
C:\\Users\\sillico\\AppData\\Local\\Microsoft\\WindowsApps;
C:\\Users\\sillico\\AppData\\Local\\Programs\\Git\\cmd'
正如你可以看到,我的PATH中有Nmap。有什么想法吗?
大概'subprocess.Popen'失败。我看到,它只是重定向'stdout',留下标准输入和标准错误的电流值的来源。这可能在Windows 7中,如果你冻结这是一个非控制台应用程序的问题,因为理线可在其标准的句柄继承无效控制台句柄值。在这种情况下,解决方法是在启动时将进程标准句柄设置为NULL。 – eryksun
例如:'进口ctypes的;''KERNEL32 = ctypes.WinDLL( 'KERNEL32',use_last_error = TRUE);在''为H(-10,-11,-12):kernel32.SetStdHandle(H,无)' 。 – eryksun