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)

 

 

  • 2
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值