Win10安装pyqt6-tools后导入QtGui提示找不到指定程序错误求助
问题根因
从你提供的已安装包列表可以直接定位故障:PyQt6 Python绑定层与底层Qt6运行库版本不匹配:
- PyQt6(Python侧绑定包)版本为6.1.0
- PyQt6-Qt6(Qt官方原生二进制运行库)版本为6.3.0
两个包大版本不一致,绑定层调用QtGui模块的函数入口时找不到对应地址,就会抛出你看到的ImportError: DLL load failed while importing QtGui: The specified procedure could not be found报错。
这个问题是旧版pyqt6-tools的依赖声明缺陷导致的:它没有锁定对应PyQt6-Qt6的版本范围,pip安装时会自动拉取最新版的Qt6运行库,直接造成版本错配,哪怕新建虚拟环境也会复现。
修复步骤
按顺序执行以下操作即可解决:
- 彻底清理当前环境中所有PyQt6相关的包,避免残留旧版本文件干扰:
pip uninstall -y PyQt6 PyQt6-Qt6 PyQt6-sip pyqt6-plugins pyqt6-tools qt6-applications qt6-tools
- 安装时强制指定所有组件版本对齐,不要让pip自动解析依赖版本:
pip install pyqt6-tools==6.3.0 PyQt6==6.3.0 PyQt6-Qt6==6.3.0
选择6.3.0版本是因为该版本的pyqt6-tools依赖配置正常,所有关联组件版本完全匹配,不会出现错配问题。
3. 修复你测试代码里的笔误:你贴的示例代码中.show()前漏写了窗口对象名,修正后的可运行测试代码如下:
from PyQt6.QtWidgets import QApplication, QWidget import sys app = QApplication(sys.argv) window = QWidget() window.show() sys.exit(app.exec())
运行这段代码如果能正常弹出空白窗口,说明环境已经修复完成。
后续使用注意事项
- 不要在安装pyqt6-tools后单独执行
pip install --upgrade pyqt6,这类操作会单独升级PyQt6绑定层,极易再次触发版本错配 - 后续如果需要升级PyQt6相关包,必须保证
PyQt6和PyQt6-Qt6的版本号完全一致,哪怕小版本号不同都可能引发DLL加载错误 - 每次安装/升级完成后,可以执行
pip list | findstr PyQt6检查版本,确认两个核心包版本对齐后再开始开发
内容的提问来源于stack exchange,提问作者wbadry
相关产品推荐
相关产品推荐

