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

您所在的位置:网站首页 火影忍者正版手办官网下载 安装 PyQt5 报错qt.qpa.plugin: Could not find the Qt platform plugin “windows“ in ““

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

2024-01-13 00:37| 来源: 网络整理| 查看: 265

使用版本&进行过的操作

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还是算了干活要紧



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3