Pycharm中用pyinstaller打包的坑

1、初尝失败

我在pycharm终端下使用pyinstller打包时,报错“With the default recursion limit (1000), the recursion error occurs at about 115 nested imported, with limit 2000 at about 240, with limit 5000 at about 660."。如下图:

于是笔者从网上找到数篇文章大多是说要在**.spec文件中添加如下代码:

import sys
sys.setrecursionlimit(2000)

按上述过程修改后重新在终端使用如下命令进行打包:

pyinstaller main.spec  #main.py是准备的主入口程序

经过多次尝试要么错误依旧,要么虽然可以打包成功,但运行时又出现一大堆错误提示,说明打包仍然是失败的。

2、探询究竟

无意间,我在一次重新打包过程中发现如下提示:

发现其中打包的是conda 环境(\envs\python310)而非项目环境(envs\jxdd),我就考虑是不是因为打包的环境与项目环境不一致才造成了打包失败。于是我在conda prompt中使用conda activate jxdd命令激活我的项目环境为当前环境,在pycharm终端中重新打包,但仍然打包的是conda 环境。

通过分析发现我的pycharm 设置中的终端Shell路径为conda prompt所在路径,我将其修改为cmd.exe所在路径,获取方法为:在系统命令行内 敲入:where cmd.exe

C:\Users\ll>where cmd.exe
C:\Windows\System32\cmd.exe

用返回的路径,修改终端shell的路径:

此时,在pycharm终端中进入的即为当前项目的环境了。

3、大功告成

如下图,再次使用pyinstaller 对项目打包,环境与项目环境一致,打包成功,项目也可以正常运行。打包时因为不使用conda基础包,项目最终也不大,打包时也很快就完成了。

这里,打包时要注意环境是否一致这个”坑“。

  • 17
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值