pyinstaller打包python程序

    使用pyinstaller可以把python程序打包成exe可执行文件,这样就能在其他人的电脑上运行你的程序了。这是我首次使用遇到的坑和一些经验总结。

1、pyinstaller打包exe文件时,递归太深:RecursionError: maximum recursion depth exceeded。


解决方法:

第一步:使用pyi-makespec [option] name.py,生成name.spec文件。(这里,我的name.py是control_gui.spec)

             可以参考官方文档: 点击打开链接


第二步:将以下代码添加到上面生成的spec文件中。

import sys
sys.setrecursionlimit(5000)#5000这个数字可以随便设

第三步:使用pyinstaller [option] name.spec进行打包。

2、打包成exe文件后,点击exe文件,提示:Failed to execute [程序名]。

    这个问题用了比较久的时间去解决,我这里出错的主要原因是使用了tensorflow,然后对应的pandas版本不正确,才导致了错误,下面我会详细说明一下。

    首先,分析错误的步骤。建议一开始先使用-D命令对程序进行打包,这样在生成的build文件夹中也会有一个exe文件,点击这个exe文件可以调出控制台,上面会给出错误信息,控制台给出错误信息的时间特别短,所以有必要进行录屏,然后仔细观察错误,以下给出我的程序中出现的错误。


    很明显,上面给出错误是:type object 'pandas._libs.tslibs.conversion._TSObject'has no attribute '_reduce_cython__'。

    其中,以下两个作者给出了解决方案,我是按照第二个作者的博客修改成功的,因为我的Python版本是3.6。第三个文章是github上针对这一问题的讨论,有兴趣的也可以参与一下。

    第一个成功解决打包时不能import自定义的包或库出现运行exe时No module named 缺少包

    第二个成功解决pyinstaller打包AttributeError:type object pandas._TSObject has no attribute _reduce_cython_

    第三个no attribute __reduce_cython__

    具体说一下我的问题所在。我用的python版本是3.X是一个原因,其中一个重要的原因是我的Pandas版本是0.23.0,应该把安装0.20.0版本。因此,我把pandas版本使用pip install pandas==0.20.0安装之后,问题就解决了!

    

-----------------------不间断更新-------------------------------

转载请注明本文来源,谢谢!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值