問題:pyinstaller 使用-w打包後os.Popen()運行提示WindowsError:[Error 6]shell
網上搜索辦法:測試
1.subprocess.Popen調用報異常:
當使用pyinstaller打成.exe文件安裝後
使用p = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
報WindowsError:[Error 6]異常
單獨使用subprocess.check_output(cmd)一樣報此異常。
奇怪的是,直接用源碼測試執行時系統徹底沒有任何問題。
後來才發現,當使用pyinstaller打包時,Popen應該以下初始化:spa
p = subprocess.Popen("cmd",shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
msg = ''
for line in p.stdout.readlines():
msg += line
status = p.wait()
惋惜很差使,仍是曲線救國吧,繼續使用os.system,一開始沒用是由於os.system默認阻塞當前程序執行,可是在cmd命令前加入start可不阻塞當前程序執行。以下code
import os os.system(r"start qq.exe")
這樣至少當前程序執行沒問題了,可是原問題仍是沒解決,先記錄一下,繼續尋找答案吧,有熱心大神能夠給留言中留下解決辦法。blog