pyinstaller遇到的问题总结
1.RecursionError: maximum recursion depth exceeded
解决步骤:
1)pyinstaller -F xxx.py
这一步肯定会报上述错误导致失败,但是会产生一个xxx.spec文件
2)在xxx.spec文件中增加两行(添加在原文件第二行):
import sys
sys.setrecursionlimit(5000)
3)pyinstaller xxx.spec
打包成功。
2.UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0xce in position
解决方法:在你打包的命令行中先输入chcp 65001
然后再输入打包命令。
3.WARNING: file already exists but should not: C:\…\…\…\Local\Temp_MEI58962\include\pyconfig.h
报错内容可能不同,但都是xxx已存在,问题的原因是pyinstaller打包时pyconfig.h多打了一次,所以会报已经存在了。这个解决方案就是把多余的pyconfig.h去掉。具体解决方法如下:
在自动生成的xxx.spec中,添加如下代码,去掉多余依赖项:
#add_begin
for d in a.datas:
if 'pyconfig' in d[0]:
a.datas.remove(d)
break
#add_end
位置在a后面,pyz前面。