苹果M1芯片macOS系统下pip安装PyQt5失败报错寻求解决方案
苹果M1芯片Mac安装PyQt5及PyQtWebEngine报错解决方案
该报错本质是M1架构下官方PyPI未提供PyQt5的arm64二进制wheel包,直接pip安装会触发源码编译,编译过程中sip版本、Qt路径不匹配就会触发对应错误,可按以下优先级选择方案解决:
方案1:使用conda-forge安装(优先推荐,无需编译,适配M1架构)
- 安装适配M1架构的Miniforge发行版,已有conda环境可跳过该步骤
- 执行命令安装对应组件:
conda install pyqt pyqtwebengine - 若需要隔离环境,可先创建虚拟环境再安装:
安装完成后即可直接导入使用,不存在组件缺失问题。conda create -n qt_dev python=3.9 conda activate qt_dev conda install pyqt pyqtwebengine
方案2:手动指定Qt路径源码编译(适合不想使用conda的场景)
- 先清理环境残留:
pip uninstall -y pyqt5 pyqtwebengine sip pyqt-builder,同时确保已卸载brew安装的pyqt版本 - 将brew安装的qt@5加入系统PATH,执行:
验证Qt版本:执行echo 'export PATH="/opt/homebrew/opt/qt@5/bin:$PATH"' >> ~/.zshrc source ~/.zshrcqmake --version,确认输出版本为5.15.x系列 - 安装匹配版本的构建依赖:
pip install pyqt-builder sip==6.5.1 - 指定qmake路径安装PyQt5:
pip install PyQt5 --config-settings --qmake=/opt/homebrew/opt/qt@5/bin/qmake - 安装完成后继续安装PyQtWebEngine:
pip install PyQtWebEngine --config-settings --qmake=/opt/homebrew/opt/qt@5/bin/qmake
方案3:使用Rosetta 2转译安装(兼容兜底方案)
如果上述方案都无法执行,可使用x86转译模式安装兼容版本:
- 打开访达->应用程序->实用工具,右键点击「终端」选择「显示简介」,勾选「使用Rosetta打开」
- 重启终端后,执行命令直接安装即可:
pip install PyQt5 PyQtWebEngine - 该方案安装的包为x86架构,运行时会走Rosetta转译,性能略低但兼容性无问题。
注意事项
- 不要同时保留brew、pip、conda多来源安装的PyQt组件,会出现路径冲突导致报错
- 编译安装时需确保qmake指向Qt5版本,不要和Qt6的环境变量混用,否则会出现版本不匹配错误。
内容的提问来源于stack exchange,提问作者Kojuru
相关产品推荐
相关产品推荐

