打包
pyinstaller 02.py --noconsole --hidden-import PySide2.QtXml
报错0:The ‘pathlib‘ package is an obsolete backport of a standard library package
分析:这个是因为笔者使用的conda的集成环境,这里面自带了打包程序,导致使用pyinstaller打包的时候就冲突了
解决: 卸载conda的打包程序conda remove pathlib
即可
报错1:qt.qpa.plugin: Could not load the Qt platform plugin “window“ in ““ even though it was found.
分析:
在anaconda3\Lib\site-packages\PySide2\plugins\platforms\
目录下的dll文件,运行程序的时候识别不到
解决:
- 将这四个文件,拷贝到
anaconda3\Lib\site-packages\PySide2\plugins\platforms\
目录下
- 新建环境变量
QT_QPA_PLATFORM_PLUGIN_PATH
,值为E:\World\anaconda3\pkgs\pyqt-5.9.2-py39hd77b12b_6\Library\plugins\PyQt5
报错2:打包程序之后,报错Failed to execute script 'xx'
分析:代码中动态加载了ui文件,打包的时候程序无法解析到使用的ui文件
解决: 只需要将ui文件拷到打包文件夹
注意:ui运行文件和main.py文件的相对文件结构,应该和ui拷进的目标目录和exe文件的相对文件结构相同
报错3:拷贝到无python环境的电脑中,运行报错
拷贝的时候只需要将dist下面的整个文件夹拷贝走就可以了
报以下错误:还是第一个报错中出现的问题, 意料之内,因为第一个解决方法依赖本机的环境变量,但新的设备并没有环境变量中的依赖包,所以就报错了。
解决: 直接将这个文件夹复制到exe的同目录下即可