pyinstaller打包程序所遇到的所有问题:Linux和windows环境下

打包命令

pyinstaller -Fw XXXX.py
其中 -F 表示只生成单个的可执行文件,否则会生成大量的其他文件。一般会选择 -F 选项。
-w选项,表示消除控制台窗口,不加就会在运行程序的同时打开一个控制台。

Linux环境下的打包

基于Ubuntu下的pyinstaller程序打包比较顺利,没有问题。由于需要在windows下运行程序,因此不得不在windows下面也打包程序,然而,却遇到了很多问题。

windows环境下打包

不得不说,在windows下面的问题还是蛮多的,下面按照顺序一一解答所遇到的问题。

python pyinstaller RecursionError:maximum recursion depth exceeded。

错误原因:打包过程中,递归层数超过限制。
解决方案:按照下面的步骤:

  1. 控制台输入pyinstaller -Fw XXX.py,等等打包出错。
  2. 找到 XXX.spec文件,在文件的第二行开始添加下面两行:
    import sys
    sys.setrecursionlimit(5000) # 5000表示运行递归的层数,可自行修改
  3. 控制台输入 pyinstaller XXX.spec

python pyinstaller cannot find existing PyQt5 plugin directories

解决了上面的问题,往往还有这个问题,错误详细信息如下(不同的电脑不同):

**Exception:**
            Cannot find existing PyQt5 plugin directories
            Paths checked: **C:/qt64/qt_1544645195969/_h_env/Library/plugins/**

解决方案

  1. 手动创建错误信息中提示的路径,比如上面的错误信息就是要建立:
    C:/qt64/qt_1544645195969/_h_env/Library/plugins/
  2. 从anaconda安装位置下面搜索pyqt5qmlplugin.dll 这个文件,拷贝到上述的目录下。如果你不是使用的anaconda环境,或者找不到,最简单的办法就是在你觉得可能的目录下面搜索pyqt5qmlplugin.dll

python pyinstaller ‘utf-8’ code can’t decode byte 0xce in position 123:invalid …

错误原因:编码格式不对,很大可能是你的程序是从linux环境下复制下来的。
解决方案

  1. (pychram)控制台输入 chcp 65001 ,如果不是pychram的IDE,试试这个命令是否有效吧
  2. 终结方法是将程序中的所有中文注释删除

This application failed to start because it could not find or load the Qt platform plugin “windows”

错误原因:windows平台的弊端吧,反正Linux下没这些毛病。
解决方案

  1. 如果你是使用的anaconda,就到其安装目录下搜索platforms目录(有可能会找到很多个,一个个试试)。
  2. 如果你是普通python环境,反正就是到相关目录下搜索platfroms ,一个个试试。

最后一个问题,就是你的程序过大,打包失败。

错误原因:使用了anaconda,依赖包太多,所以比较大。
解决方案:新建一个环境,怎么建立,见链接:

https://blog.csdn.net/wskzgz/article/details/88993910

好了,就是这样,我在打包过程中,遇到了上面所有问题,花了半天一夜才全部解决。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值