IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> 安装 PyQt5 报错qt.qpa.plugin: Could not find the Qt platform plugin “windows“ in ““ -> 正文阅读

[C++知识库]安装 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还是算了干活要紧

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-07-13 17:16:52  更:2021-07-13 17:18:34 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年4日历 -2024/4/28 23:14:48-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码