This application failed to start because it could not find or load the Qt platform plugin
问题描述
在window11上安装最新版本的pyqt5:
pip install sip
pip install pyqt5-tools
这样就会把pyqt5所有的工具都安装上啦。
然鹅!事情并不简单~
运行弹窗信息:
This application failed to start because it could not find or load the Qt platform plugin “windows”. Reinstalling the application may fix this problem
当我运行测试案例的时候,却发现报了标题所示的错误!并提示重新安装可能会解决这个问题,善良的我就这样重复安装了各个版本尝试!(以前遇到这个问题记得在安装指定版本的时候,就不会出现这个问题了,但是这次始终没有解决,甚至还把anaconda换成了python,还是没有用)。
解决过程
百度一下网上不少博主都给了解决方法(然而并没有什么用),总结了一下就是以下两种:
1、把插件添加到系统路径就能用(我是在一个venv独立虚拟环境里安装的,也不太清楚把哪个文件添加过去,后面想了一下,主要是网上的版本不一样,目录都不太一样,自然就不一定有那些路径和文件了)
2、把某个文件复制到指定文件夹下,但是因为版本问题,也不行(原因和第一个方案一样,pyqt这都更新到pyqt6 了,而且小版本那么多,使用的目录也不一样,这些些方案当时都没帮到我)
抛开版本去解决环境问题那简直就是耍流氓!!!
先附上我的各个版本:
平台:windows11(电脑版本影响应该不大,都是Windows)
python:3.7.2
注意,我这里只独立安装了numpy, wheel和pyqt5-tools
且都是当时最新的版本
解决方案
既然文件对不上,而且安装各个版本都没有那些文件,同时安装anaconda和python都没有,于是我判定,那些博主的思路是对的,只是他们都没有说明自己的版本和系统,于是我选择在自己的venv包下找到了plugins这个目录,虽然和网上的对不上,不在同一个地址,但是文件应该没错。并在系统变量中添加了如下内容:
变量名:QT_QPA_PLATFORM_PLUGIN_PATH
变量值:C:\一直到我的虚拟环境目录\venv\Lib\site-packages\PyQt5\Qt5\plugins
注意:这里的变量值可能因为版本问题,所在的目录可能并不会和我这里的一样,例如我在网上看到了如下目录:
C:\一直到包环境下\site-packages\PyQt5\Qt\plugins
然而我的版本环境下并没有最后的plugins目录,还是要根据自己的判断去寻找plugin目录的位置的。
发现再次运行还是不行,同时发现pycharm一直在加载pyqt5相关的内容,再加上之前解决更换python版本或者安装anaconda的时候遇到过需要注销才能运行的经历,果断注销电脑,然后再次运行,发现项目可以用了!pyqt5可以正常开发啦!
猜测1
既然是最后需要注销才能加载,可不可能存在这么一种情况呢?
就是执行完sip, pyqt5-tools安装后,就已经ok能用pyqt5了,只是需要重新注销一下才能加载plugins里的内容并使用呢?
但是时间紧迫现在暂时先不去测试了,下次或者有兴趣的朋友们可以去证实一下我的这个猜测~
猜测2
对于网上的两个解决办法,我还有另一个推测:
既然是需要添加路径到系统变量里(以前有的版本和环境不用,笔者不幸曾在Linux和Windows下安装过不需要执行以上两个方法之一就能用的版本,20年大二暑假实习,20年课程作业装13用pyqt,21年参赛百度多镜头识别下载labelIMG标注工具用过pyqt都是最后通过使用了特殊版本而不需配置),那么可能就是在源文件里读取调用的位置有变动,但是在目录的布局和内容的调用上并没有很好的统一规范,才导致现在这些问题。当然,这也只是猜测。
好了,装13结束,可怜的娃该好好去写自己的大四毕设了!