Python3运行时隐藏命令窗口的方法与PyInstaller打包技巧
本文介绍如何在Python运行时隐藏命令窗口。首先通过将.py后缀改为.pyw实现脚本运行时无黑框。其次,详细讲解使用PyInstaller打包exe时的参数配置,包括如何合并依赖库至单个exe文件,以及解决打包后隐藏窗口执行CMD命令报错的问题,推荐使用subprocess模块替代直接调用。
将Python脚本文件的后缀名从.py修改为.pyw。
修改后缀后,在文件属性中可以看到文件类型显示为“Python File (no console) (.pyw)”。
由于文件类型标识为no console,运行该脚本时将不会弹出黑色的命令提示符窗口。
补充说明:关于使用Python打包exe文件并隐藏执行CMD命令窗口的方法。
在虚拟环境中安装pyinstaller库。
pip install pyinstaller
执行打包exe的命令(具体命令可参考网络资料):
# 打包1个py文件,并隐藏执行窗口
pyinstaller -F -w main.py
# 打包1个py文件(-F),并隐藏执行窗口(-w),替换exe的ico图标(-i img.ico)
pyinstaller -F -w -i img.ico main.py
上述打包方式会将所有依赖库以源文件形式保存在文件夹中。通常情况下,用户更希望生成一个独立的exe文件。
将文件夹中所有依赖库合并打包进一个exe文件中:
# 合并到一个exe内(--onefile),替换exe图标(--icon=img.ico),py源文件(main.py),隐藏执行(-w)
pyinstaller --onefile --icon=img.ico main.py -w
注意事项:
当把所有依赖库打包进单个exe文件,并以隐藏CMD窗口的方式执行时,可能会出现错误导致程序无法正常运行。此时需要采用其他方法处理CMD命令的执行。
subprocess来执行CMD命令。这种方式来执行cmd命令就不会出现程序错误。
import subprocess
cmd = '你的CMD命令'
res = subprocess.call(cmd, shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
以上为个人经验分享,希望能给大家提供一个参考,也希望大家多多支持本站。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













