使用pystaller打包qy图形界面遇到的问题:This application failed to start...

1. 前言

首先,说明下使用ptstaller打包qt图形程序遇到的“This application failed to start.” 问题,与在安装PySide2后运行一个简单的qt图形程序后遇到的 “This application failed to start because no Qt platform plugin could beinitialized. Reinstalling the application may fix this problem.”问题不同(后者参考该文章点击该链接),后者需要在安装的PySide2路径下在__init__.py文件中添加一些信息。

2. 正文

先保证未打包的qt图形程序能正常运行,我的qt图形程序路径为F:\PycharnProjects\learningProjects\Qt\t4\hospital_info_sys.py,之后使用在改qt图形程序的路径下执行pyinstaller hospital_info_sys.py --noconsole --hidden-import PySide2.QtXml,之后会在F:\PycharnProjects\learningProjects\Qt\t4路径下生成一个dist文件夹和bulid文件夹,见下图
使用pystaller打包qy图形界面遇到的问题:This application failed to start..._第1张图片
之后进入dist/hospital_info_sys,往下拉文件滚动条会看到一个hospital_info_sys.exe文件。然后将原来hospital_info_sys.py中需要动态加载的.ui文件复制到dist/hospital_info_sys下(最好在编写hospital_info_sys.py时将待加载的.ui文件放到同级目录下,例如self.ui = QUiLoader().load('hospital_info_sys.ui'))。此时直接点击改exe文件,会出现下面的错误
使用pystaller打包qy图形界面遇到的问题:This application failed to start..._第2张图片
解决办法:错因是打包的文件dist\hospital_info_sys\PySide2\plugins\platforms下中只有4个dll文件,但是在自己一开始安装的PySide2下面的有5个dll文件(在Anaconda3\Lib\site-packages\PySide2\plugins\platforms下)。因此只要把PySide2下的platforms文件夹(包含5个dll文件)直接代替打包的dist\hospital_info_sys\PySide2\plugins\platforms即可

3.压缩打包文件

仅压缩项目路径下F:\PycharnProjects\learningProjects\Qt\t4\dist下的 hospital_info_sys文件夹

你可能感兴趣的:(python,qt)