This application failed to start because it could not find or load the Qt platform plugin

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
且都是当时最新的版本
注意,我这里只独立安装了numpy, wheel和pyqt5-tools(因为它会自动把和pyqt相关的包都安装上)

解决方案

既然文件对不上,而且安装各个版本都没有那些文件,同时安装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结束,可怜的娃该好好去写自己的大四毕设了!

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值