Python3.9 Jupyter中scipy/sklearn架构不兼容报错求助
解决Python3.9环境下scipy/sklearn架构不兼容(arm64 vs x86_64)的ImportError
方案1:通过Rosetta 2运行终端,重装x86_64架构依赖
- 打开终端的「显示简介」,勾选「使用Rosetta打开」,重启终端
- 卸载所有可能存在架构冲突的依赖:
pip uninstall -y scipy scikit-learn numpy - 确认当前pip为x86_64版本(路径应为
/usr/local/bin/pip3):which pip3 - 重新安装适配x86_64的依赖:
pip3 install scipy scikit-learn
方案2:用Conda创建纯x86_64的Python3.9环境
- 在Rosetta终端中安装x86_64版本的Miniconda
- 创建指定架构和Python版本的虚拟环境:
conda create -n py39_x86 python=3.9 - 激活环境:
conda activate py39_x86 - 安装依赖:
conda install scipy scikit-learn - 将该环境添加到Jupyter Notebook的kernel列表:
python -m ipykernel install --user --name=py39_x86 - 打开Jupyter后切换到
py39_x86kernel即可使用
方案3:修复现有环境的架构一致性
- 检查当前Python的架构:
file $(which python3) - 检查scipy模块的架构:
file $(python3 -c "import scipy; print(scipy.__file__)") - 若两者架构不一致,彻底卸载冲突依赖:
pip3 freeze | grep -E 'scipy|scikit-learn|numpy' | xargs pip3 uninstall -y - 使用对应架构的pip重新安装(arm64用
/opt/homebrew/bin/pip3,x86_64用/usr/local/bin/pip3),强制源码编译适配当前架构:pip3 install --no-binary :all: scipy scikit-learn
额外注意事项
- 确保Jupyter Notebook使用的kernel与安装依赖的Python环境一致,可在Jupyter的「Kernel」菜单中切换
- 避免同时混用arm64和x86_64的包管理工具(如同时使用/opt/homebrew和/usr/local的homebrew)
内容的提问来源于stack exchange,提问作者Lakeside52
相关产品推荐
相关产品推荐

