【已解决】Pyinstaller打包PySide2为exe后报错。报错信息:This application failed to start because no Qt platform plugin

初学Python的GUI开发,在使用Pyinstaller打包PySide2为exe程序后,无法打开exe文件

报错信息为:

This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.(该应用程序无法启动,因为无法初始化Qt平台插件。 重新安装应用程序可以解决这个问题。)

Available platform plugins are: minimal (from

C:UsersOrangeDesktop'testPyuiui5distui5PySide2pluginsplatfor ms), offscreen (from

C:UsersOrangeDesktoptestPyuiui5distui5PySide2pluginsplatfor ms), windows (from

C:UsersOrangeDesktoptestPyuiui5distui5PySide2pluginsplatfor ms), minimal, offscreen, windows.

【报错信息如图所示】

【已解决】Pyinstaller打包PySide2为exe后报错。报错信息:This application failed to start because no Qt platform plugin_第1张图片

 我在网络中查询了很多资料,尝试了两天后终于解决问题,现将经验分享给大家。

注意:纠错的前提在打包成exe之前,尝试在vscode里运行已编写好的程序代码,可以正常运行。  (如果python文件都不能运行,那就是代码的问题了。)

【如下所示:我的代码和可以运行成功的界面】

import os
import PySide2
#下面三行是在import部分就加入pyside2的plugins\platforms文件夹路径
dirname = os.path.dirname(PySide2.__file__) 
plugin_path = os.path.join(dirname, 'plugins', 'platforms') 
os.environ['QT_QPA_PLATFORM_PLUGIN_PATH'] = plugin_path
from PySide2.QtWidgets import QApplication,QMessageBox
from PySide2.QtUiTools import QUiLoader

class AppS:
    def __init__(self):
        self.ui = QUiLoader().load(r'C:\Users\Orange\Desktop\testPyui\ui7\ui7.ui')

app = QApplication([])
stats = AppS()
stats.ui.show()
app.exec_()

 【已解决】Pyinstaller打包PySide2为exe后报错。报错信息:This application failed to start because no Qt platform plugin_第2张图片

在这里补充一下使用Pyinstaller,打包PySide2为exe程序的方法:

 代码运行成功后,我在cmd里先cd到放有.ui文件和.py文件的文件夹(C:\Users\Orange\Desktop\testPyui\ui7),然后输入打包程序命令

【如下所示】

C:\Users\Orange>cd C:\Users\Orange\Desktop\testPyui\ui7
C:\Users\Orange\Desktop\testPyui\ui7>pyinstaller test7.py --noconsole --hidden-import PySide2.QtXml

文件夹中会生成许多新文件【如下图】

【已解决】Pyinstaller打包PySide2为exe后报错。报错信息:This application failed to start because no Qt platform plugin_第3张图片

 依次打开新生成的【dist】→【test7】→找到生成的.exe文件【test7.exe】→双击打开

FINE!!!报错了..

【已解决】Pyinstaller打包PySide2为exe后报错。报错信息:This application failed to start because no Qt platform plugin_第4张图片

--------------------------------------------------------------------------------------------------------------------------------

【报错的解决方法】以下写了3种方法,依次尝试。
方法<1>

添加系统环境变量。【图例是win10】

右键【我的电脑】 单击【属性】 单击【高级系统设置】

【已解决】Pyinstaller打包PySide2为exe后报错。报错信息:This application failed to start because no Qt platform plugin_第5张图片

 单击【环境变量】

【已解决】Pyinstaller打包PySide2为exe后报错。报错信息:This application failed to start because no Qt platform plugin_第6张图片

 在【系统变量】中点击【新建】

【已解决】Pyinstaller打包PySide2为exe后报错。报错信息:This application failed to start because no Qt platform plugin_第7张图片

 变量名:QT_QPA_PLATFORM_PLUGIN_PATH      (一个字都不能改!!)

变量值:C:\Users\Orange\AppData\Roaming\Python\Python37\site-packages\PySide2\plugins\platforms   

(因下载时的路径差异而有所不同,重点是找到你电脑里【PySide2】文件夹下的【plugins】→【platforms】 )

【已解决】Pyinstaller打包PySide2为exe后报错。报错信息:This application failed to start because no Qt platform plugin_第8张图片

 设置好后,点击【确定】→【确定】,重启电脑!!!!!!

重启电脑后,重复上述打包成exe的步骤,再次双击生成的exe文件(或许)可解决报错问题。

若不能解决,尝试进行以下操作:

方法<2> 

 将C:\Users\Orange\AppData\Roaming\Python\Python37\site-packages\PySide2\plugins\platforms路径下的如下文件:

【已解决】Pyinstaller打包PySide2为exe后报错。报错信息:This application failed to start because no Qt platform plugin_第9张图片

 全部复制(或覆盖)到 D:\anaconda3\Library\plugins\platforms 文件夹下。【如下图】

【已解决】Pyinstaller打包PySide2为exe后报错。报错信息:This application failed to start because no Qt platform plugin_第10张图片

 复制好后,重复上述打包成exe的步骤,再次双击生成的exe文件可解决报错问题。

若依然不能解决,尝试方法3。

方法<3>

若不能解决,将上述5个.dll文件复制粘贴到生成exe文件的【dist】文件夹,尝试双击exe,应该可以成功打开程序。

【如下图 success】

【已解决】Pyinstaller打包PySide2为exe后报错。报错信息:This application failed to start because no Qt platform plugin_第11张图片

=========================================================================

初次写文章,有许多不足,主要还是为了记录下解决这个问题的过程(怕以后忘了)。如果能帮助到其他人更是极好的!有任何问题都可在评论区留言,祝愿大家敲码顺利!!

你可能感兴趣的:(python)