- 打包过程失败
- setup_tools文件需要更新
报错提示:
解决办法:
升级setup tools,如下所示:
- 在中文路径下打包
报错提示:
解决办法:
更换英文目录下打包即可。
解码错误问题
报错提示:
类似:UnicodeDecodeError: 'xxx' codec can't decode byte 0xce in position
解决办法:
更换英文目录下打包或者打包命令窗口中输入 chcp 65001后,重新打包。
PYQT5安装错误
报错提示:
解决办法:
重装PYQT5。
- 打包成功,但是启动工具失败
首先打包命令中不可以包含“- w”参数,它会隐藏命令行窗口,导致看不到错误提示。
失败原因大致分为下面几种:
1. 导入module不全
报错提示:
no module named xxx
解决办法有2种:
- 命令行参数加 --hidden-import xxx(导入应用需要的包)
- 在打包生成的xxx.spec文件中hiddenimports参数后填入module名,再重新打包spec文件即可
2. 工具依赖dll缺失
报错提示:
ImportError: DLL load failed
解决办法:
将依赖的dll拷贝到代码中指定的路径即可。
3. PyQt plugins缺失
报错提示:
解决办法:
将PyQt\Qt\plugins下文件夹拷贝到打包结果目录。
4. 依赖文件路径不存在
问题表象:
打包的本机上运行正常,但是将程序放到其它机器上运行就有问题。
解决办法:
使用相对路径或者冻结路径来指定依赖的文件。
- 其它注意事项
- 权限问题
- 使用管理员权限运行cmd或其它命令行窗口。
- 使用完全权限的管理员账户。
- 打包后文件太大
- 在代码中减少不必要的import,以from xxx import x替换import xxx。
- 在精简的运行环境(如原生python环境)下打包,缺什么包就安装什么包,避免不必要的python包被打包入程序。