pyinstaller打包时总是出现这个问题 5

输入chcp65001和将out=out.decode(encoding)改成out=out.decode(encoding,errors='ignore')都试过了,也... 输入chcp 65001和将out = out.decode(encoding)改成out = out.decode(encoding, errors='ignore')都试过了,也不好使。 展开
 我来答
羑争上游
高能答主

2022-04-11 · 答题姿势总跟别人不同
知道小有建树答主
回答量:5188
采纳率:43%
帮助的人:236万
展开全部
打包过程中遇到的问题:
首先升级你的pyinstaller升到最新版。

1、UnicodeDecodeError
这个问题是因为你的代码里应该是包含了中文字符,这个问题很好解决,只需在打包前输入:

chcp 65001
1
之后再重新打包即可。

2、RecursionError
写过python递归程序的同学应该知道,python为了防止无限递归这个问题,设置了最大递归深度,当然这也会妨碍其他程序的正常运行。因此我们只需打开生成的 xxx.spec 文件,加入:

import sys
sys.setrecursionlimit(10000) # 设置一个比较大的值即可
1
2
之后再执行:

pyinstaller xxx.spec
1
成功生成exe之后遇到的问题
此时,生成的exe文件往往会闪退,我们难以看到报错信息,有个小技巧就是把你的exe程序拖到你的cmd窗口运行,此时就可以查看具体的错误信息。如果少文件,就用pip安装即可,以下问题针对已经安装好所有的模块仍报错的情况。

1、ModuleNotFindError
打开你的文件夹里生成的 xxx.spec文件,在hiddenimports行加入缺少的模块。例如:

hiddenimports=['xxx']
1
xxx为你提示缺少的模块,之后执行:

pyinstaller xxx.spec
1
2、DistributionNotFound
这个问题主要是缺少对应的hook文件导致的,找到你pyinstaller的安装目录,进入hooks文件夹,创建类似于hook-xxx.py文件xxx为你的报错缺少的模块,打开加入一下代码:

from PyInstaller.utils.hooks import copy_metadata
datas = copy_metadata('xxx')
1
2
然后重新执行:

pyinstaller -D xxx.py
1
3、 缺少dll的问题
直接在的python或者anaconda环境里搜索你缺少的dll文件名字,直接拖到你的exe文件夹下即可。

4、 ImportError: unable to find Qt5Core.dll on PATH
我喜欢
2022-04-11 · TA获得超过251个赞
知道答主
回答量:3391
采纳率:28%
帮助的人:41.9万
展开全部

更新系统

这个是由于版本过低,或者是系统异常导致的,需要更新系统

重启手机

手机出现故障了,需要检查后并重启手机。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式