关于如何安装pyinstaller库,参看如何打包python为exe文件。这里我们提问题及解决方案。
问题1:pandas库无法打包
解决方案:建hook解决
1.在../Pyinstaller/hooks目录下新建文件hook-pandas.py并写入内容
hiddenimports = [
#all your previous hidden imports
'pandas' , 'pandas.libs.tslibs.timedeltas'
]
说明:这里--hidden-import是程序需要的包,但是没有被打包进来。这里错误最多,当然不止pandas,但是这个pandas不改基本上必错,因为一般第三方库隐式调用其他包,然后打包出来的程序就显示Fate Error无法运行。也就是说你调用的第三方库(如pandas)他自己也调了其他库(numpy),但你自己程序里面没有调用numpy,那么就Error了。
2.重新执行pyinstaller,问题解决
(也可以不用此法,直接在pyinstaller命令中添加,具体命令如:
pyinstaller -F test.py --hidden-import=pandas._libs.tslibs.timedeltas
)
问题2:AttributeError:'str'object has no attribute 'items'
解决方案:更新setuptools
1.cmd下卸载该库
pip uninstall setuptools
2.cmd下安装该库最新版本
pip install setuptools(默认最新)
问题3:Cannot find existing PyQt5 plugin directories
解决方案:可能是缺少依赖项,对其重新安装
1.pip list查看已有的qt包
2.如果没有,重新安装即可
pip install pyqt5
问题4:UnicodeDecodeError:'utf-8' code can't decode byte 0xXX in position XX'
解决方案:chcp 65001
1.在打包的命令行下,输入
chcp 65001
2.执行打包命令
pyinstaller -F xxx.py
说明:在中文windows系统中,如果一个文本文件是utf-8编码的,那么在cmd(DOS窗口)中不能正确显示文件中的内容。在默认情况下,命令行窗口中使用的代码页是中文或美国英语,即编码是中文字符集或者西文字符集。如果想正确显示UTF8字符,就必须使用chcp命令改变代码页,而utf8的代码页为65001。
网友评论