M1 Mac如何通过Rosetta在VS Code中运行Jupyter Notebooks适配PyQt5
解决方案
方案1:配置Jupyter自定义内核,强制通过Rosetta运行
你不需要整份VS Code都用Rosetta启动,只需单独给Jupyter创建x86架构的运行内核即可,操作步骤如下:
- 打开Rosetta模式的终端,执行命令
jupyter kernelspec list,获取当前默认Python内核的存储路径,输出示例如下:python3 /Users/你的用户名/Library/Jupyter/kernels/python3 - 复制该内核文件夹,重命名为
python3-rosetta - 打开文件夹内的
kernel.json文件,修改argv字段,用arch命令强制指定x86_64架构启动Python,修改后示例:
注意替换上方的Python路径为你本地实际使用的路径(可从你报错的路径里复制){ "argv": [ "arch", "-x86_64", "/Library/Frameworks/Python.framework/Versions/3.10/bin/python3", "-m", "ipykernel_launcher", "-f", "{connection_file}" ], "display_name": "Python 3 (Rosetta)", "language": "python" } - 重启VS Code,打开.ipynb文件后,右上角内核选择
Python 3 (Rosetta),即可正常运行PyQt5相关代码
方案2:安装M1原生arm64架构的PyQt5
如果你不想依赖Rosetta运行,可以直接装适配arm64架构的PyQt5,操作步骤如下:
- 打开原生终端(不要开Rosetta,执行
arch命令返回arm64即为原生模式) - 先卸载原有x86架构的PyQt5:
pip3 uninstall pyqt5 -y - 先安装arm64版Homebrew,再通过brew安装qt5依赖:
brew install qt@5 - 重新安装PyQt5,会自动编译适配arm64架构的版本:
pip3 install pyqt5 - 安装完成后在终端测试
import PyQt5.QtWidgets无报错,即可在VS Code中选择默认arm64内核运行代码,不需要Rosetta环境
注意事项
不要混用两种架构的Python依赖包,要么全在Rosetta终端下装包用Rosetta内核,要么全在原生终端下装包用原生内核,避免出现其他架构不匹配的导入错误。
内容的提问来源于stack exchange,提问作者Maximilian Stephan
相关产品推荐
相关产品推荐

