(.py)打包成(.exe)可能出现的几种报错

(.py)打包成(.exe)可能出现的几种报错

这篇文章是我打包过程中发现的错误,就顺便做一下笔记。不知道如何打包的小伙伴可以看下面链接的这篇文章: https://blog.csdn.net/m0_48692571/article/details/107020772

报错一: UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0xce in position 122: invalid continuation byte
报错说明: 该错误是由于编码问题导致的,所以在打包前需要改变命令行窗口(cmd)的编码格式。
解决方法: 在输入打包命令(pyinstaller -F -w (-i icofile) 文件名.py)之前,先在命令行窗口中输入:

chcp 65001

报错二: RecursionError: maximum recursion depth exceeded while calling a Python object
报错说明: 该错误是说,递归深度越界了,python中默认的递归深度为1000
解决方法: 在输入完打包命令后,即使报错也会在源文件处生成一个目录结构,在这个目录结构中找到XXX.spec 这个文件。
然后用记事本打开这个文件,在第二行输入以下两行代码:

import sys
sys.setrecursionlimit(2000)

这两行代码是在手动修改递归深度的设置。这里我改的是2000,如果不够还可以继续改大一点,最好不要一次性改太大。


报错三: ImportError: cannot import name ‘_validate_lengths’ from ‘numpy.lib.arraypad’
报错说明: 从这个错误中可以看出问题出在numpy包,因此应该是numpy的版本问题,更细致的原因不太清楚。
解决方法:
1、卸载当前的高版本的numpy(我的版本是1.16),卸载命令:(pip uninstall numpy)
2、重新安装1.15.0版本的numpy,安装指定版本的包命令:(pip install numpy==1.15.0)
3、重新打包,双击运行,亲测成功。
该解决方法来源: https://blog.csdn.net/geng333abc/article/details/99300816非常感谢


报错四: 在打包好.exe成功后,双击运行,报错:failed to execute script pyi_rth_win32comgenpy
报错说明: 可能的原因是pyinstaller库所依赖的第三方库pywin32版本为224,我查看了我的pywin32的版本为228。
解决方法:
1、卸载pywin32的228(或是比224版本高的版本),卸载命令:(pip uninstall pywin32)
2、重新安装224版本的pywin32,安装指定版本的包命令:(pip install pywin32==224)
3、重新打包,双击运行,亲测成功。(也许不需要重新打包,你可以重新打包前先双击试一下)
该解决方法来源: https://zhuanlan.zhihu.com/p/92614558非常感谢这个贴主

暂时发现这四个错误,以后再补充

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值