Python多文件打包为exe

使用工具:Pyinstaller

1 准备信息

本python项目文件中有:

多个.py文件

文本文件夹:data,含一个.pkl和xml文件

venv:环境所需的包,如imutils、numpy、pyqt5等

项目文件路径为 C:\Users\ray\Desktop\auto_rec_new(供下面参考使用)

 

2 生成.spec文件

按Shift同时右键整个项目所在文件夹,点击"在此处打开powerShell窗口",并输入

 pyi-makespec -w xxx.py        

xxx为项目启动文件的名称

3 配置spec文件

2步执行后文件夹中会生成三个文件:xxx.spec、dist、build,打开xxx.spec

1 添加当前路径:

如下图第五行文字所示,设置项目文件夹的路径

SETUP_DIR = 'C:\\Users\\ray\\Desktop\\auto_rec_new\\'

2 添加相关.py文件

将项目相关的.py文件路径添加到Analysis中,最好都放在SETUP_DIR这个路径下,这样的话就只用写文件名就行了;如果文件在子目录中,需写成相对路径或绝对路径(绝对路径亲测没问题,相对路径没试过)

3 设置当前路径

在pathex后添加当前路径,也就是SETUP_DIR去掉后面两个”\\”

4 配置文本文件

文本文件已知包括的有.pkl和.xml文件,欢迎读者在评论区扩充!

在项目路径下创建文件夹data,并把文本文件都放进去(此处记得要将代码中调用这些文本文件的路径也一并改了)

随后在.spec的datas行写:

datas=[(SETUP_DIR+'data','data')],

4 打包文件

同2步一样,打开shell命令窗口

输入(xxx.py仍为项目启动文件):

pyinstaller -F -w xxx.py

5 运行程序

运行successfully后可在dist目录下找到.exe文件,直接执行即可

6 常见报错

1 缺少qtwebengine_locale

报错为Unable to find \PyQt5\Qt\translations\qtwebengine_locale

在cmd中输入:

pip install PyQtWebEngine

2 递归次数过多

报错为RecursionError: maximum recursion depth exceeded while calling a Python object

在.spec最上面添加下述代码(括号中数字可以按需修改),可以参考上面的.spec文件截图:

import sys
sys.setrecursionlimit(10000)

 

 


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部