关于使用pyinstaller来打包PySide2程序中的问题

打包

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文件,运行程序的时候识别不到

解决:

  1. 将这四个文件,拷贝到anaconda3\Lib\site-packages\PySide2\plugins\platforms\目录下
    关于使用pyinstaller来打包PySide2程序中的问题_第1张图片
  2. 新建环境变量QT_QPA_PLATFORM_PLUGIN_PATH,值为E:\World\anaconda3\pkgs\pyqt-5.9.2-py39hd77b12b_6\Library\plugins\PyQt5

报错2:打包程序之后,报错Failed to execute script 'xx'

关于使用pyinstaller来打包PySide2程序中的问题_第2张图片
分析:代码中动态加载了ui文件,打包的时候程序无法解析到使用的ui文件
解决: 只需要将ui文件拷到打包文件夹

注意:ui运行文件和main.py文件的相对文件结构,应该和ui拷进的目标目录和exe文件的相对文件结构相同


报错3:拷贝到无python环境的电脑中,运行报错

拷贝的时候只需要将dist下面的整个文件夹拷贝走就可以了

报以下错误:还是第一个报错中出现的问题, 意料之内,因为第一个解决方法依赖本机的环境变量,但新的设备并没有环境变量中的依赖包,所以就报错了。
关于使用pyinstaller来打包PySide2程序中的问题_第3张图片

解决: 直接将这个文件夹复制到exe的同目录下即可
关于使用pyinstaller来打包PySide2程序中的问题_第4张图片
关于使用pyinstaller来打包PySide2程序中的问题_第5张图片

你可能感兴趣的:(好家伙,有Bug,Qt,python,开发语言)