You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PyInstaller打包含NodeGraphQt/PySide2的Python脚本报错:Qt无QtGui属性

解决PyInstaller打包含NodeGraphQt、PySide2脚本时的AttributeError: module 'Qt' has no attribute 'QtGui'错误

报错信息

C:\dev\isp-pipeline_revamp\Utils\ISP_Pipeline_Creator\dist>isp_graph_creator.exe
Traceback (most recent call last):
  File "ISP_Pipeline_Creator\isp_graph_creator.py", line 7, in <module>
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
  File "PyInstaller\loader\pyimod02_importers.py", line 385, in exec_module
  File "Qt.py", line 2036, in <module>
  File "Qt.py", line 2014, in _install
AttributeError: module 'Qt' has no attribute 'QtGui'
[14784] Failed to execute script 'isp_graph_creator' due to unhandled exception!

已尝试无效方案

  • 修改.spec文件添加'Qt'作为隐藏导入
  • 使用Py2Exe替代PyInstaller打包
  • 卸载并重新安装所有Qt相关依赖

可行解决方案

1. 强制指定Qt绑定版本

在脚本最开头添加以下代码,强制Qt.py使用PySide2作为绑定,避免打包时自动识别出错:

import os
os.environ["QT_PREFERRED_BINDING"] = "PySide2"

添加完成后再导入NodeGraphQt、PySide2等相关模块。

2. 完善PyInstaller spec文件的隐藏导入

修改.spec文件,在hiddenimports中补充PySide2核心模块和Qt.py:

hiddenimports=[
    'PySide2.QtGui',
    'PySide2.QtWidgets',
    'PySide2.QtCore',
    'Qt.py'
]

也可直接用命令行参数打包,自动收集PySide2的所有依赖:

pyinstaller --collect-all PySide2 --collect-all NodeGraphQt your_script.py

3. 清理缓存后重新打包

删除项目下的build、dist文件夹以及所有__pycache__目录,清除PyInstaller缓存文件后重新执行打包命令,避免旧缓存导致的依赖缺失。

4. 锁定Qt.py兼容版本

部分新版本Qt.py可能存在打包兼容问题,可安装指定兼容PySide2的版本:

pip install Qt.py==1.3.0

内容的提问来源于stack exchange,提问作者Stav Faran

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 06:55:08