python - 如何在 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)。
解决方案
可以在普通的 arm64 brew python 上安装,需要自己编译。
如果numpy
已经安装(从轮子),你需要卸载它:
pip3 uninstall -y numpy pythran
我必须编译numpy
,这需要cython
和pybind11
:
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
推荐阅读
- linux - 使用 sed 查找匹配两个日期的一系列行
- c++ - Postgres自定义类型映射到C结构?
- flutter - 有没有办法在 Flutter 上找到连接速度?
- laravel - 我无法显示来自我的控制器的一些信息,我必须在 @section('content') @endsection 之间显示的信息
- php - MySQL PDO 多个 UPDATE
- java - 与 log4j2 集成后,日志未反映在报告门户中
- mysql - 需要进行哪些更改来防止警告:#1287 在我的查询中不推荐在表达式中设置用户变量?
- android - 对高度/宽度/边距等使用约束布局和“dp”是否可以确保应用程序的响应能力?
- amazon-lex - 将 AWS Lex 与 Viber 集成
- c# - 如何将 Google、Facebook 等账号的社交登录插件插入到您现有的经典 asp.net 制作的身份验证系统中?