2017-07-28 153 views
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。有什麼想法嗎?

+0

大概'subprocess.Popen'失敗。我看到,它只是重定向'stdout',留下標準輸入和標準錯誤的電流值的來源。這可能在Windows 7中,如果你凍結這是一個非控制檯應用程序的問題,因爲理線可在其標準的句柄繼承無效控制檯句柄值。在這種情況下,解決方法是在啓動時將進程標準句柄設置爲NULL。 – eryksun

+0

例如:'進口ctypes的;''KERNEL32 = ctypes.WinDLL( 'KERNEL32',use_last_error = TRUE);在''爲H(-10,-11,-12):kernel32.SetStdHandle(H,無)' 。 – eryksun

回答

0

我設法通過升級到Python 3.5來解決這個錯誤。正在使用Python 2.7。