解决This application failed to start because no Qt platform plugin could be initialized.

本次的问题:
错误1:This application failed to start because no Qt platform plugin could be initialized.(弹窗)
错误2:qt.qpa.plugin: Could not find the Qt platform plugin “windows” in “xxxxxx” ,This application failed to start because no Qt platform plugin could be initialized.(cmd中打印异常)
我认为这两个错误其实本质上是一体两面的,错误1出现于需要qt才能打开的软件,例如印象笔记、运行pyqt5写的 代码,打开QT的designer的时候;错误2出现于我执行 用pyinstaller打包出来的、包含pyqt5代码的exe文件时,打开的cmd黑窗口中。

看了各种博客,认为引发错误的原因表面是matplotlib的重装(可能是我之前是pip安装的,但最后我改成用conda装),根本原因是系统没找到qt platform 插件的路径。

1.首先按照文章1,我发现 pyqt5包路径\Lib\site-packages\PyQt5\Qt中没有plugins\platform,于是使用everything找到我所有qt下的plugins文件夹(就是别的环境中的qt文件夹),直接复制到 pyqt5包路径\Lib\site-packages\PyQt5\Qt下,但问题没有解决。
2.接着尝试使用pip重装pyqt5、pyqt5-tools、pyqt5-sip、pyqt5_plugins,问题没解决。
3.我尝试文章2提到的添加环境变量方法,新增系统变量 QT_QPA_PLATFORM_PLUGIN_PATH,使其等于 pyqt5包路径\Lib\site-packages\PyQt5\Qt\plugins\, 但无效。
4.接着按照另一篇文章设置 QT_PLUGIN_PATH,使其等于 pyqt5包路径\Lib\site-packages\PyQt5\Qt\plugins\, 失败。
5.我想到弹窗中提到的是platform,或许环境变量中,应该具体到platform的路径于是,我又在 QT_QPA_PLATFORM_PLUGIN_PATHQT_PLUGIN_PATH 各自添加一条 pyqt5包路径\Lib\site-packages\PyQt5\Qt\plugins\platform,但失败。
6.然后又看到一篇文章说 QT_QPA_PLATFORM_PLUGIN_PATHQT_PLUGIN_PATH只能有一条,于是我只保留了 pyqt5包路径\Lib\site-packages\PyQt5\Qt\plugins\platform,删掉另一条路径。于是!印象笔记能正常打开了!但是exe和代码都不能正常运行,原来印象笔记靠 QT_PLUGIN_PATH就能起来!至此距离问题解决更进一步、
7.我其实同时还去QT官网下载安装器,感觉重新安装QT应该是能解决问题的,但是需要50G的空间,我只能慢慢下载…

8.最后,我想会不会和环境变量PATH也有关系,因为绝大多少代码都有依赖PATH,一看PATH中没有QT相关的环境变量于是在PATH变量中添加 pyqt5包路径\Lib\site-packages\PyQt5\Qt\plugins\platform,这个困扰我一整天的问题终于成功解决!!!!

对问题的关键解法是第6和8步操作。

这个问题是凌晨发现的,本来说好要给客户交付了(小作坊)但是卡在打包这一步,其实上一篇文章已经解决了打包问题,但是打包出来的exe却不能打开就很困扰,其实我也是第一次尝试做QT,结果不但没有按时交付还把自己电脑的软件(比如印象笔记,可能还有没有发现的)弄崩了,心态爆炸。于是休息了一整天,回来花两个小时研究国内外博客(主要还是国内)把问题解决了。
这次的问题其实没有能完全copy的解法,PATH其实有一篇博客提到了但不是加platform的路径,然后 QT_QPA_PLATFORM_PLUGIN_PATHQT_PLUGIN_PATH是在好几篇博客提到的甚至也是提到最多的,这俩环境变量只能存在一条是第三篇博客提到的,我做的不过是把这些博客按照自己的经验去”撮合”起来才把问题解决,站在巨人的肩膀上,自己也要努力跳起来才能看得更远。

Original: https://blog.csdn.net/qq_28668779/article/details/126324850
Author: Pianist Of Keyboard
Title: 解决This application failed to start because no Qt platform plugin could be initialized.

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/764218/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球