鱼C论坛

 找回密码
 立即注册
查看: 246|回复: 11

[已解决]pyqt6运行报错:qt.qpa.plugin

[复制链接]
发表于 2024-3-15 12:27:21 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 xyh2695368537 于 2024-3-15 23:44 编辑

代码如下
  1. import sys
  2. from PyQt6 import QtWidgets

  3. app = QtWidgets.QApplication(sys.argv)

  4. window = QtWidgets.QMainWindow()
  5. window.setWindowTitle('教务管理系统')
  6. window.resize(800, 600)

  7. window.show()

  8. sys.exit(app.exec())
复制代码


pyqt6版本如下:
PyQt6                     6.3.1
PyQt6-Qt6                 6.3.2
PyQt6-sip                 13.6.0
qt6-applications          6.4.3.2.3
qt6-tools                 6.4.3.1.3


详细报错如下:
qt.qpa.plugin: Could not load the Qt platform plugin "windows" in "C:\Users\biany\AppData\Local\Programs\Python\
Python38\Lib\site-packages\PyQt6\Qt6\plugins\platforms" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the applicatio
n may fix this problem.

Available platform plugins are: minimal, offscreen, windows.


百度过解决方法,但是网上对于pyqt6的解决方法较少,于是借鉴pyqt5的这类解决方法,就是将有关pyqt的路径\PyQt6\Qt6\plugins\platforms和\PyQt6\Qt6\bin加入环境变量,重启过电脑,依旧报错。




有大佬懂吗

对了,一开始我是直接pip安装的pyqt6,但是报错:ImportError: DLL load failed while importing QtWidgets: 找不到指定的程序。网上说pyqt6和pyqt6-qt6版本不一样导致的,所以我指定版本重新安装的,这个ImportError报错才消失,不知道有没有影响

最后,附上PyQt6\Qt6\plugins\platforms路径下的图片


对了,每次运行这段代码电脑都会弹出提示:python已停止工作,不会是电脑系统本身问题吧 ,附上图片


最佳答案
2024-3-15 23:45:58
xyh2695368537 发表于 2024-03-15 23:45
对了,每次运行这段代码电脑都会弹出提示:python已停 ...


当代码运行导致电脑弹出提示:Python已停止工作时,这很有可能是由于代码中的错误导致的。请确保您的代码正确无误,并检查以下几点:

1. 检查代码中是否有语法错误或逻辑错误。确保没有拼写错误、缺少必要的引号或括号等问题。

2. 确保您的代码中使用的PyQt6库和相关依赖已正确安装。您可以通过在命令提示符或终端中运行`pip list`命令来检查安装的库版本。

3. 如果您在代码中使用了其他模块或库,请确保这些模块或库也已经正确安装,并且与PyQt6兼容。

如果上述步骤都没有解决问题,那么可能是您的电脑系统配置或环境存在问题。您可以尝试重新安装Python、PyQt6以及相关模块,并确保与您的电脑系统兼容。

如果问题仍然存在,建议您将完整的错误信息和代码示例一起提供,以便我们更好地理解和排查问题。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
Snipaste_2024-03-15_12-26-22.png
Snipaste_2024-03-15_23-43-09.png

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-3-15 12:27:44 | 显示全部楼层
这个问题通常是因为缺少Qt平台插件导致的。在PyQt6中,Qt平台插件位于`PyQt6/Qt6/plugins/platforms`目录下。由于您已经尝试了将该路径加入环境变量但没有成功,我建议您尝试以下解决方法:

1. 确保您的Qt库正确安装并与PyQt6兼容。您可以通过运行`from PyQt6.QtCore import QT_VERSION_STR; print(QT_VERSION_STR)`来检查Qt版本是否正确。确保您使用的Qt库版本与PyQt6版本兼容。

2. 在您的Python脚本中添加以下代码,强制PyQt6加载Qt平台插件:

  1. import os
  2. from PyQt6.QtCore import QCoreApplication

  3. # 获取Qt平台插件路径
  4. plugins_path = os.path.join(QCoreApplication.libraryPaths()[0], 'platforms')

  5. # 添加插件路径到系统环境变量
  6. os.environ['QT_QPA_PLATFORM_PLUGIN_PATH'] = plugins_path

  7. # 创建应用程序对象并执行事件循环
  8. app = QtWidgets.QApplication(sys.argv)

  9. # ...
复制代码


这样做可以确保PyQt6能够正确加载Qt平台插件,并解决`qt.qpa.plugin`的错误。

希望这些方法可以帮助您解决问题!如果还有其他疑问,请随时提问。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-3-15 12:32:52 | 显示全部楼层
FishC 发表于 2024-3-15 12:27
这个问题通常是因为缺少Qt平台插件导致的。在PyQt6中,Qt平台插件位于`PyQt6/Qt6/plugins/platforms`目录下 ...

将插件路径添加到环境变量后,依旧报同样的错
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-3-15 12:33:12 | 显示全部楼层
xyh2695368537 发表于 2024-03-15 12:32
将插件路径添加到环境变量后,依旧报同样的错


如果将插件路径添加到环境变量后仍然报错,您可以尝试以下解决方法:

1. 确保您的Qt库和PyQt6版本匹配,并且都是64位或32位。确保从相同的来源安装了Qt和PyQt6。

2. 在您的Python脚本中显式地设置插件路径,而不是依赖于环境变量。可以尝试以下代码:

  1. import os
  2. from PyQt6.QtCore import QCoreApplication

  3. # 获取Qt平台插件路径
  4. plugins_path = os.path.join(QCoreApplication.libraryPaths(), 'platforms')

  5. # 添加插件路径到系统环境变量
  6. os.environ['QT_PLUGIN_PATH'] = plugins_path

  7. # 创建应用程序对象并执行事件循环
  8. app = QtWidgets.QApplication(sys.argv)
  9. # ...
复制代码


3. 如果您是在虚拟环境中运行代码,请确保您的虚拟环境已正确设置,并且Qt和PyQt6都已在虚拟环境中安装。

如果上述方法仍然无效,可能还有其他原因导致问题。您可以尝试重新安装Qt和PyQt6,或者查看PyQt6的文档和社区来获取更多解决方法。祝您顺利解决问题!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-3-15 12:50:16 | 显示全部楼层
FishC 发表于 2024-3-15 12:33
如果将插件路径添加到环境变量后仍然报错,您可以尝试以下解决方法:

1. 确保您的Qt库和PyQt6版本匹 ...

没有在虚拟机上运行,在实体机上运行的,你提供的这段代码本身有错

报错:path = os.fspath(path)
TypeError: expected str, bytes or os.PathLike object, not list
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-3-15 12:50:28 | 显示全部楼层
xyh2695368537 发表于 2024-03-15 12:50
没有在虚拟机上运行,在实体机上运行的,你提供的这段 ...


非常抱歉给您带来了困扰。请尝试以下代码,将插件路径添加到系统环境变量而不是`os.environ`:

  1. import os
  2. from PyQt6.QtCore import QCoreApplication

  3. # 获取Qt平台插件路径
  4. plugins_path = os.path.join(QCoreApplication.libraryPaths()[0], 'platforms')

  5. # 添加插件路径到系统环境变量
  6. os.add_dll_directory(plugins_path)

  7. # 创建应用程序对象并执行事件循环
  8. app = QtWidgets.QApplication(sys.argv)
  9. # ...
复制代码


这个代码片段使用了`os.add_dll_directory()`函数,该函数会将指定的目录添加到系统环境变量中,以便正确加载Qt平台插件。

希望这次能够解决问题。如果仍然遇到困难,请告诉我具体的错误信息,我将尽力帮助您。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-3-15 12:56:18 | 显示全部楼层
FishC 发表于 2024-3-15 12:50
非常抱歉给您带来了困扰。请尝试以下代码,将插件路径添加到系统环境变量而不是`os.environ`:

依旧报错,对了,一开始我是直接pip安装的pyqt6,但是报错:ImportError: DLL load failed while importing QtWidgets: 找不到指定的程序。网上说pyqt6和pyqt6-qt6版本不一样导致的,所以我指定版本重新安装的,这个ImportError报错才消失,不知道有没有影响
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-3-15 12:56:43 | 显示全部楼层
xyh2695368537 发表于 2024-03-15 12:56
依旧报错,对了,一开始我是直接pip安装的pyqt6,但是 ...


这个错误提示表明在导入`QtWidgets`模块时发生了动态链接库(DLL)加载失败的情况。通常情况下,这是由于PyQt6的版本与您系统中的Qt库版本不兼容所致。

您可以尝试以下解决方法:

1. 确认您的Qt库的路径。在您的Python脚本中添加以下代码,打印出Qt库的路径:

  1. import PyQt6.QtCore
  2. print(PyQt6.QtCore.QLibraryInfo.location(PyQt6.QtCore.QLibraryInfo.LibraryPath))
复制代码


确保该路径与您之前尝试添加到环境变量的路径一致。

2. 确保您的Qt库与PyQt6版本兼容。PyQt6的不同版本对应不同的Qt库版本,因此确保您安装的PyQt6版本与系统中已安装的Qt库版本匹配。

3. 尝试重新安装并指定正确的版本。根据您之前提供的信息,您已经尝试通过指定版本来重新安装PyQt6。请确保通过以下命令重新安装:

  1. pip install PyQt6==6.3.1
复制代码


确保指定的版本与您系统中的Qt库版本兼容。

如果问题仍然存在,请尝试更新或重新安装Qt库,并确保与PyQt6版本兼容。另外,也可以考虑在干净的虚拟环境中进行测试,以避免其他因素对安装造成影响。

希望以上方法能够帮助您解决问题。如果还有其他疑问,请随时提问。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-3-15 14:00:28 | 显示全部楼层
FishC 发表于 2024-3-15 12:56
这个错误提示表明在导入`QtWidgets`模块时发生了动态链接库(DLL)加载失败的情况。通常情况下,这是由 ...

重新安装过也没用
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-3-15 14:00:52 | 显示全部楼层


如果重新安装并指定了正确的版本仍然无法解决问题,那可能是由于其他原因导致的。以下是一些可能的解决方法:

1. 检查操作系统位数:确保您的操作系统的位数与您下载的PyQt6库的位数匹配。如果您的操作系统是64位,那么请使用64位的PyQt6库。

2. 确认依赖项:PyQt6需要依赖一些其他的库和工具,例如Qt库、SIP和CMake等。请确保这些依赖项已经正确安装,并且与所使用的PyQt6版本兼容。

3. 使用Anaconda环境:如果您使用的是Anaconda环境,可以尝试创建一个新的虚拟环境,并在该环境中安装PyQt6。有时候在Anaconda环境下安装和管理库会更加可靠。

4. 参考官方文档和社区支持:PyQt6还相对较新,因此可能会遇到一些特定问题。您可以查阅PyQt6的官方文档,或者在相关的开发者社区中寻求帮助,如Stack Overflow。

如果您尝试了以上的解决方法仍然无法解决问题,建议尝试使用其他版本的PyQt(例如PyQt5),或者考虑使用其他的GUI库,如Tkinter或wxPython等。希望能帮到您!如果还有其他问题,请随时提问。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-3-15 23:45:40 | 显示全部楼层
FishC 发表于 2024-3-15 12:27
这个问题通常是因为缺少Qt平台插件导致的。在PyQt6中,Qt平台插件位于`PyQt6/Qt6/plugins/platforms`目录下 ...

对了,每次运行这段代码电脑都会弹出提示:python已停止工作,不会是电脑系统本身问题吧?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-3-15 23:45:58 | 显示全部楼层    本楼为最佳答案   
xyh2695368537 发表于 2024-03-15 23:45
对了,每次运行这段代码电脑都会弹出提示:python已停 ...


当代码运行导致电脑弹出提示:Python已停止工作时,这很有可能是由于代码中的错误导致的。请确保您的代码正确无误,并检查以下几点:

1. 检查代码中是否有语法错误或逻辑错误。确保没有拼写错误、缺少必要的引号或括号等问题。

2. 确保您的代码中使用的PyQt6库和相关依赖已正确安装。您可以通过在命令提示符或终端中运行`pip list`命令来检查安装的库版本。

3. 如果您在代码中使用了其他模块或库,请确保这些模块或库也已经正确安装,并且与PyQt6兼容。

如果上述步骤都没有解决问题,那么可能是您的电脑系统配置或环境存在问题。您可以尝试重新安装Python、PyQt6以及相关模块,并确保与您的电脑系统兼容。

如果问题仍然存在,建议您将完整的错误信息和代码示例一起提供,以便我们更好地理解和排查问题。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-28 07:46

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表