记:之前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:

python 打包带依赖 pyinstaller打包依赖_python 打包带依赖

  • 由于本人在代码中引用了一个qss文件,所以需要将该文件所在的文件夹拷贝到 exe 运行路径下即可。

注:
① 我在网上看到说打包的exe文件很大,是由于使用的Anaconda的base环境,将一些无用的库也拷贝进去,需要使用虚拟环境,但是本人这里暂未出现,应该是由于之前PyCharm配置时使用的就是本人自定义的环境,所以暂未出现网上说的状况,具体配置可查看我之前写的博客 Python基础开发环境搭建 。
②还有就是看到打包时有 --hidden-import 这一选项,可以导入这个项目中的一些其他的Python文件,还有很多参数本人暂时没用到,先埋个坑吧。
③ 如果是把一些具体功能的Python文件放在了一个具体的文件夹里,就可以使用-p 文件夹名

2022-11-20
Alxa China
ZLG