如何解决macOS上PyQt6导入失败的问题?
macOS下PyQt6脚本启动报错:缺失QRasterWindow符号
原本可正常运行的Python3 .pyw脚本,在macOS上启动时出现导入错误,谷歌搜索未找到解决方案。
脚本代码
import os import signal from PyQt6.QtGui import QIcon from PyQt6.QtWidgets import QApplication import sys from include.BaseDialog import BaseDialog if __name__ == '__main__': qapp = QApplication(sys.argv) qapp.setWindowIcon(QIcon(f'{sys.path[0]}/include/Icon.png')) styleSheet = """ """ qapp.setStyleSheet(styleSheet) app = BaseDialog() qapp.aboutToQuit.connect(app.close_program) signal.signal(signal.SIGINT, app.close_program) signal.signal(signal.SIGTERM, app.close_program) sys.exit(qapp.exec())
报错信息
执行命令 Python3 SoftwareHubGUI.pyw 后出现如下报错:
Traceback (most recent call last): 文件 "/Users/me/PRIMARY/WORK/MOJO/Software/softwarehubgui/SoftwareHubGUI.pyw", 第4行, in <module> from PyQt6.QtGui import QIcon ImportError: dlopen(/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/PyQt6/QtGui.abi3.so, 0x0002): 未找到符号: __ZN13QRasterWindow11resizeEventEP12QResizeEvent 引用自: <C8D7E625-2A13-3C34-9DFF-B6656A6F86E7> /Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/PyQt6/QtGui.abi3.so 期望存在于: <FC67C721-05AD-33BB-A2A8-F70FC3403D7A> /Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/PyQt6/Qt6/lib/QtGui.framework/Versions/A/QtGui
解决建议
- 彻底重装PyQt6,避免缓存或安装不完整问题:
pip3 uninstall -y PyQt6 pip3 install PyQt6 --no-cache-dir - 确认使用对应Python版本的pip工具,规避环境冲突:
/Library/Frameworks/Python.framework/Versions/3.11/bin/pip3 install PyQt6 --no-cache-dir - 手动清理PyQt6残留文件后重装:
rm -rf /Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/PyQt6 pip3 install PyQt6 - 检查系统是否存在多版本Qt,清理多余版本,确保PyQt6绑定的Qt库路径唯一
内容的提问来源于stack exchange,提问作者Doug Null
相关产品推荐
相关产品推荐

