MacOS下VS Code运行.pyw文件提示PyQt6缺失,终端运行正常
问题现象
- .pyw文件通过终端命令行或Finder双击运行均正常
- 在Visual Studio Code中选择「运行>启动调试」或「运行>不调试运行」时,出现以下错误:
/Users/me/.zshrc:export:2: not valid in this context: /Users/me/.zshrc me@Dougs-MacBook-2023 softwarehubgui % /usr/bin/env /Users/me/PRIMARY/WORK/MOJO/Software/softwarehubgui/.venv/bin/python /Users/me /.vscode/extensions/ms-python.python-2024.0.1/pythonFiles/lib/python/debugpy/adapter/../../debugpy/launcher 61817 -- /Users/me/PRIMARY/WORK/MOJO/Software/softwarehubgui/SoftwareHubGUI.pyw Traceback (most recent call last): File "/Users/me/PRIMARY/WORK/MOJO/Software/softwarehubgui/SoftwareHubGUI.pyw", line 5, in <module> from PyQt6.QtGui import QIcon ModuleNotFoundError: No module named 'PyQt6' me@Dougs-MacBook-2023 softwarehubgui
相关.pyw文件代码
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())
当前PATH环境变量(未包含PyQt路径)
dbell@Dougs-Mac softwarehubgui % echo $PATH
/Library/Frameworks/Python.framework/Versions/3.11/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/Library/Apple/usr/bin:/usr/local/share/dotnet:~/.dotnet/tools:/Library/Frameworks/Python.framework/Versions/3.11/bin:/opt/homebrew/bin:/opt/homebrew/sbin
注:终端与VS Code终端的PATH路径一致。
后续测试结果(2024年2月12日更新)
尝试使用两个Python 3.11版本运行脚本均失败:
- 虚拟环境Python运行报错:
me@Dougs-MacBook-2023 softwarehubgui % /Users/me/PRIMARY/WORK/MOJO/Software/softwarehubgui/.venv/bin/python /Users/me/PRIMARY/WORK/MOJO/Software/softwarehubgui/SoftwareHubGUI.pyw
Traceback (most recent call last):
File "/Users/me/PRIMARY/WORK/MOJO/Software/softwarehubgui/SoftwareHubGUI.pyw", line 5, in
from PyQt6.QtGui import QIcon
ModuleNotFoundError: No module named 'PyQt6'
me@Dougs-MacBook-2023 softwarehubgui %
/usr/local/bin/python3运行报错:
me@Dougs-MacBook-2023 softwarehubgui % /usr/local/bin/python3 /Users/me/PRIMARY/WORK/MOJO/Software/softwarehubgui/SoftwareHubGUI.pyw Traceback (most recent call last): File "/Users/me/PRIMARY/WORK/MOJO/Software/softwarehubgui/SoftwareHubGUI.pyw", line 5, 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): Symbol not found: __ZN13QRasterWindow11resizeEventEP12QResizeEvent Referenced from: <C8D7E625-2A13-3C34-9DFF-B6656A6F86E7> /Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/PyQt6/QtGui.abi3.so Expected in: <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 me@Dougs-MacBook-2023 softwarehubgui %
内容的提问来源于stack exchange,提问作者Doug Null

