Pyinstaller 打包常见问题总汇(欢迎补充):
- UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0xce in position XXX: invalid continuation b
a.删除中文注释
b. 在运行pyinstaller 前先在cmd里输入
chcp 65001
- 如果程序比较复杂先生成.spec文件方便对打包过程进行修改
- RecursionError: maximum recursion depth exceeded in comparison:
在spec里开头加一句:
import sys sys.setrecursionlimit(100000)
- 一些第三方库没有加载打包
可在 spec 中analysis里的 hiddenimports 加入你要的库:
a = Analysis([‘data_db_importer_pandas.py’],
pathex=[‘D:\work\。。。。。。’],
binaries=[],
datas=[],
hiddenimports=[‘cython’, ‘sklearn’, ‘sklearn.ensemble’,‘sklearn.neighbors.typedefs’,‘sklearn.neighbors.quad_tree’,‘sklearn.tree._utils’,‘scipy._lib.messagestream’],
hookspath=[],
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher)
- 一些专用的包会有各自独特的问题比如打包jieba时有很多问题请参考:
https://blog.csdn.net/sinat_34200786/article/details/79715236
https://blog.csdn.net/qq_26376175/article/details/69680992 - 这玩意儿还可以反编译,嗯,不写了。有什么其他见解欢迎补充