安装 PyQt5 报错qt.qpa.plugin: Could not find the Qt platform plugin “windows“ in ““

使用版本&进行过的操作

IDLE使用 Visual Studio 2019 ,在VS内创建工程使用的虚拟环境并进行包的安装
python == 3.7
PyQt5 == 5.15.4
pyqt5-tools == 5.15.4.3.2
PyQt5及pyqt5-tools全部按照教程使用pip 安装(中途报了一个error,将依赖包click从8.*降级至7.0,不过这一步应该没什么影响)

出现的问题

运行如下实例代码后出现了Could not find the Qt platform plugin "windows" in ""错误,估计是缺少Qt platform 插件,也就是一些必要的dll文件。一开始以为是VS的问题,因为它安装包的时候有一些奇奇怪怪的补全提示(好的我承认对它有偏见XD),后来发现错怪它了

import sys
from PyQt5.Qt import *
from PyQt5 import  QtWidgets

if __name__ == '__main__':
 # 创建QApplication类的实例
 app = QtWidgets.QApplication(sys.argv)
 # 创建一个窗口
 window = QWidget()
 # 设置窗口标题
 window.setWindowTitle('Hello World!')
 # 设置窗口尺寸
 window.resize(400, 400)
 # 移动窗口位置
 window.move(1000, 300)
 # 创建label控件
 label = QLabel(window)
 # 为控件设置文本
 label.setText('Hello World!')
 # 移动空间的位置
 label.move(160, 160)
 # 显示窗口
 window.show()
 # 进入程序的主循环,并通过exit函数确保主循环安全结束
 sys.exit(app.exec_())

查找资料后发现它可能在虚拟环境\Lib\site-packages\PyQt5\Qt\plugins这个路径下,但发现我安装的这个版本的根本没有这个文件夹,所以它肯定是在其他地方。
在这里插入图片描述
缺少的dll文件一定在包中,在site-packages中搜索platforms后发现有两个platforms文件夹,但是文件有一点点区别(但都含有qwindows.dll估计都可以)
在这里插入图片描述
在这里插入图片描述
尝试将环境变量QT_QPA_PLATFORM_PLUGIN_PATH 修改为这两个路径,发现都可以成功跑出结果。如果使用的不是虚拟环境,到这里就可以结束了。

虚拟环境下增加插件

使用虚拟环境必然是要用多个不同版本python 或者是包,如果直接设置环境变量,不同版本用的将会使用同一份dll文件,也许可以但有隐患。所以我选择不直接在系统中修改环境变量,而是在python 文件最前面前人为的加入一个环境变量。这样既不影响其他版本的pyqt,又能实现目的。

import os
os.environ['QT_QPA_PLATFORM_PLUGIN_PATH'] = 'D:\venvforqt\Lib\site-packages\PyQt5\Qt5\plugins\platforms'

当然这样做还是比较麻烦的,每一次使用pyqt的时候都要加这么两行,暂时还没有想到更好的办法,改动读dll文件的那部分代码应该也可以,但是读源码工程量想想就很大QAQ还是算了干活要紧

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值