记:之前PyCharm下PyQt的开发环境已经搭建好了,也能够写简单界面了,那最重要的便是打包了,如此一来,整个流程便通畅了,剩下的只有如何写代码的问题了。
1. 安装Pyinstaller
打开cmd,输入安装命令:
pip install pyinstaller
注:记得添加过环境变量
2. 命令解析
-F # 打包生成一个 exe
-w # 使用窗口,无控制台
-c # 使用控制台,无窗口
-n # 自定义生成的exe文件名
-icon # 添加程序icon
-D # 创建一个目录,里面包含exe以及其他一些依赖性文件
-i # 忽略打包过程中遇到的错误,遇到错误继续执行
...
- 生成的文件放在同目录dist下。
- 不加-F参数生成一堆文件,运行快。加-F参数生成一个exe文件,运行起来慢。
3. 执行打包
- 例如本人项目配置
- 随后 cmd 进入主文件(本人为 main.py)所在的文件夹中也可直接在PyCharm中的终端处直接输入以下命令:
pyinstaller -F -w main.py
- 提示
completed successfully.
相关则成功。 - 随后在主文件(本人为 main.py)所在的文件夹中可以看到多了 3 个文件
- 在
dist
文件夹下则可以看到生成的exe
文件。
4. 问题集锦
①Error_01
执行 pip install pyinstaller
出现
The ‘typing’ package is an obsolete backport of a standard library package and is incompatible with PyInstaller. Please ‘conda remove typing’ then try again.
执行
pip uninstall typing
即可。
② Error_02
打包完成后,运行 exe
出现
Failed to execute script ‘main’ due to unhandled exception: [Error 2] No such file or directory:
Traceback (most recent call last): File “main.py”, line 12, in FileNotFoundError: [Errno 2] No such file or directory:
- 由于本人在代码中引用了一个qss文件,所以需要将该文件所在的文件夹拷贝到
exe
运行路径下即可。
注:
① 我在网上看到说打包的exe文件很大,是由于使用的Anaconda的base环境,将一些无用的库也拷贝进去,需要使用虚拟环境,但是本人这里暂未出现,应该是由于之前PyCharm配置时使用的就是本人自定义的环境,所以暂未出现网上说的状况,具体配置可查看我之前写的博客 Python基础开发环境搭建 。
②还有就是看到打包时有 --hidden-import
这一选项,可以导入这个项目中的一些其他的Python文件,还有很多参数本人暂时没用到,先埋个坑吧。
③ 如果是把一些具体功能的Python文件放在了一个具体的文件夹里,就可以使用-p 文件夹名
2022-11-20
Alxa China
ZLG