首页 > 解决方案 > 如何在 Apple Silicon (ARM / M1) 上安装 SciPy

问题描述

我已经在带有 Apple Silicon 的新 Mac mini 上成功安装了带有 Numpy 和 Matplotlib 的 python 3.9.1。但是,我无法安装 SciPy:使用时出现编译错误

python3 -m pip 安装 scipy

我还尝试从 brew 安装所有东西,并且“import scipy”可以工作,但是使用它会出现段错误。我已经安装了 ARM 版本的 lapack 和 openblas,但这并不能解决问题。

有人成功了吗?(我有兴趣在本地运行它,而不是通过 Rosetta)。

标签: pythonscipyarmapple-siliconapple-m1

解决方案


可以在普通的 arm64 brew python 上安装,需要自己编译。

如果numpy已经安装(从轮子),你需要卸载它:

pip3 uninstall -y numpy pythran

我必须编译numpy,这需要cythonpybind11

pip3 install cython pybind11

然后numpy可以编译:

pip3 install --no-binary :all: --no-use-pep517 numpy

Scipy 需要pythran(这应该在安装 numpy 之后发生):

pip3 install pythran

然后我们需要自己编译 scipy,它依赖于 fortran 和 BLAS/LACK:

brew install openblas gfortran

告诉scipy它在哪里可以找到这个库:

export OPENBLAS=/opt/homebrew/opt/openblas/lib/

然后最后编译scipy

pip3 install --no-binary :all: --no-use-pep517 scipy

推荐阅读