如何修复M1 Mac上Jupyter Notebook导入Numpy的报错问题
解决Jupyter Notebook导入Numpy报错(Python脚本正常)的问题
问题核心
报错提示Numpy的C扩展架构不兼容:mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64e'),说明Jupyter运行的Python环境和终端脚本使用的Python环境架构不一致(常见于M系列Mac,存在原生arm64和Rosetta模拟x86_64两种Python环境)。
诊断步骤
终端中检查当前Python架构:
python3 -c "import platform; print(platform.machine())"输出
arm64为原生M系列环境,x86_64为Rosetta模拟环境。在Jupyter Notebook中运行以下代码,对比环境差异:
import sys import platform print("Python路径:", sys.executable) print("架构:", platform.machine())
解决方法
方法1:让Jupyter使用终端的Python环境
如果终端的Python环境能正常导入Numpy,将该环境添加为Jupyter内核:
- 激活终端的Python环境(虚拟环境需先执行
source 虚拟环境路径/bin/activate) - 安装ipykernel:
pip install ipykernel - 将环境注册到Jupyter:
(python -m ipykernel install --user --name=my_custom_envmy_custom_env可替换为你自己的环境名称) - 重启Jupyter,新建Notebook时选择刚添加的内核即可。
方法2:重装适配Jupyter环境的Numpy
根据Jupyter的架构,重装对应版本的Numpy:
- 如果Jupyter是x86_64架构:右键终端选择「使用Rosetta打开」,执行:
pip uninstall numpy -y pip install numpy - 如果Jupyter是arm64架构:直接在原生终端执行上述卸载重装命令。
方法3:统一Python环境架构(M系列Mac推荐)
卸载当前不兼容的Python版本,重新安装适配M系列的arm64版本Python,然后依次安装Numpy和Jupyter,确保所有工具都运行在同一架构环境下。
内容的提问来源于stack exchange,提问作者bento
相关产品推荐
相关产品推荐

