Traceback (most recent call last):File "1.py", line 348, in on_888File "os.py", line 986, in popenFile "subprocess.py", line 667, in __init__File "subprocess.py", line 908, in _get_handlesOSError: [WinError 6] 句柄無效。os.popen(r'"cmd /c start /wait \\IP\t\p.exe"','w') 時報上面的錯os.popen(r'"cmd /c start /wait \\IP\t\p.exe"','w',1) 時報上面的錯os.popen(r'"cmd /c start /wait \\IP\t\p.exe"','r',1) 時報下面的錯os.popen(r'"cmd /c start /wait \\IP\t\p.exe"','r') 時報下面的錯File "os.py", line 980, in popenFile "subprocess.py", line 667, in __init__File "subprocess.py", line 890, in _get_handlesOSError: [WinError 6] 句柄無效。請問該如何解決問題來自 OS.SYSTEM 安裝軟件時條用 shell有一個黑框,想去掉網友說 os.popen可以解決,但是pyinstaller 打包后出現問題pycharm測試正常請大神幫忙解決 謝謝
2 回答

SMILET
TA貢獻1796條經驗 獲得超4個贊
你打包成exe后,命令行應該是pyinstller -Fw xxx.py
你加上了w參數也就是把console設置成了flase;那么os.popen()或者subprocess.popen()執行的時候沒有載體,你只有把console設置成true,也就是命令改為pyinstaller -F xxx.py,這樣你的os.popen()可執行,也能獲得返回值。

精慕HU
TA貢獻1845條經驗 獲得超8個贊
os.popen('ipconfig') 命令返回的結果在調試時亂碼了:
output1 = os.popen('ipconfig')
o1=output1.read()
我猜這里輸出的內容要和控制臺設置的編碼一致,我查了一下我的控制臺編碼時gbk
output1 = os.popen('ipconfig')
o1=output1.read().decode('gbk')
這樣就好了!
添加回答
舉報
0/150
提交
取消