在使用pyinstaller進行打包Python腳本成exe程序帶 -w參數時,如果程序中有用到 以下一些方法,會導致一些坑:
subprocess.Popen()
os.popen()
pyinstaller打包exe程序時,一般的語法示例如下,假如作者這裏有個腳本叫:冒險島登錄器.py 現在要將它打包成:冒險島登錄器.exe可執行程序。常見的做法是:
pyinstaller -F 冒險島登錄器.py -w
但是這樣做有個弊端,加了-w會導致一些方法失效無法執行,就像作者腳本中的這個方法一樣:
我這裏腳本中用到了 subrocess.Popen()方法,我在打包的時候,如果不加-w參數,可以正常運行,但是運行exe時會彈出一個cmd命令行,導致看着用戶體驗不好,所以想打包的時候去掉 cmd命令行,不讓它彈出。於是乎將命令修改了一下,將-w參數替換成 --noconsole 這樣的話,就正確了。命令示例如下:
pyinstaller -F 冒險島登錄器.py --noconsole
本篇文章純屬作者隨手筆記記錄一下,希望能幫助到跟我遇到同樣坑的朋友