PyQt6架构不兼容报错求助:M1桌面端安装后无法导入
解决M1设备上PyQt6架构不兼容的ImportError问题
核心问题定位
错误提示明确显示:PyQt6的QtWidgets库是arm64架构,但当前Python环境需要x86_64架构。这说明你的M1设备上的Python实际是通过Rosetta运行的x86_64版本——尽管系统arch命令返回arm64,但Python的架构可能和系统不一致。
验证Python架构
先确认你的Python实际运行架构:
python3 -c "import platform; print(platform.machine())"
如果输出是x86_64,就坐实了Python是x86版本,这就是问题根源。
解决方案
方案1:切换到原生arm64版本的Python
如果没有必须用x86 Python的理由,优先用原生arm64版本:
- 卸载当前x86版本的Python(以brew安装为例):
brew uninstall python - 用arm64架构重新安装Python:
arch -arm64 brew install python - 确保使用新安装的arm64 Python的pip安装PyQt6:
(路径可能因brew安装位置不同而变化,可通过/usr/local/bin/python3 -m pip install pyqt6which python3确认)
方案2:为x86 Python安装适配的PyQt6
如果必须保留x86版本的Python,需要安装x86架构的PyQt6:
- 打开Rosetta终端(右键终端.app -> 显示简介 -> 勾选"使用Rosetta打开")
- 在该终端中执行卸载和重装:
或者直接通过arch命令强制以x86架构运行pip:pip3 uninstall -y pyqt6 pip3 install pyqt6arch -x86_64 python3 -m pip install pyqt6
额外验证步骤
安装完成后,可再次验证PyQt6的架构是否匹配:
lipo -info /Library/Frameworks/Python.framework/Versions/3.13/lib/python3.13/site-packages/PyQt6/QtWidgets.abi3.so
输出应和Python的架构一致(要么都是arm64,要么都是x86_64)。
内容的提问来源于stack exchange,提问作者while true read
相关产品推荐
相关产品推荐

