在使用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
本篇文章纯属作者随手笔记记录一下,希望能帮助到跟我遇到同样坑的朋友