前言:之前博客介绍了使用Pyqt5开发python gui界面,直接这样用的话,每次要通过Python启动。如果要脱离python环境使用,则需要将写好gui的python3的py文件打包成exe程序
网上找到的方法是python有个库,pyinstaller
- 安装pyinstaller
可以直接在cmd命令行中,输入代码来安装pyinstaller
pip install pyinstaller
- 打包文件成exe程序 (下面举个栗子)
1.将cmd的目录切换至(命令:cd 文件路径(注意空格))需要打包的py文件目录下:
该目录下资源如下图:
2.输入打包执行代码:
常用参数说明:
–icon=图标路径
-F 打包成一个exe文件
-w 使用窗口,无控制台
-c 使用控制台,无窗口
-D 创建一个目录,里面包含exe以及其他一些依赖性文件
pyinstaller -h 来查看参数
2.1使用-F,即打包成一个exe文件
如果就一个py文件,可以直接
pyinstaller -F Video.py
如果想换图标就 :
pyinstaller -F --icon=myy.ico Video.py
目录下变成这样:
dist目录下多了个exe文件:
运行的话会出现cmd的黑框框即控制台,和我们的gui窗口
ps:因为这里我们用的是 -F,所以可以把其他文件都删了,留这个Video.exe就行
最开始我不换图标,不报错,加上--icon=myy.ico后报错了
AttributeError: module 'win32ctypes.pywin32.win32api' has no attribute 'error'
最后在Pyinstaller将python代码打包成exe | Pyinstaller错误合集里找到错误是因为
2.2当使用-w,即使用窗口,无控制台时
pyinstaller -w --icon=myy.ico Video.py
生成的目录变成:
资源变多了,但是cmd那个烦人的黑框框不会出现了 ,只有我们的gui窗口
2019/8/8更新:
最近遇到的一个bug:之前我是python3.5,换电脑后我换成了python3.7,再次进行打包成exe操作时,打包后的exe运行时报错:
ImportError: unable to find Qt5Core.dll on PATH
最后我在https://stackoverflow.com/questions/57244083/pyinstaller-packed-exe-failed-to-run-script-on-other-pc-says-qt5core-dll-not-f找到了解决办法: