python - 如何在 M1 (Apple Silicon / Darwin-arm64) 上安装和导入 Scipy、Numpy、NumExpr 等?
问题描述
我有一个来自 Apple 的 M1 处理器,它是一种新的 ARM64 架构,为许多数据科学 Python 包提供的二进制文件将无法在其上运行,并且在大多数情况下编译它们会失败。
诸如如何在 Apple Silicon (ARM / M1) 上安装 SciPy或M1 Big sur 11.1 中的 numpy 构建失败等问题提供了许多不同的答案,其中一些有效,大多数无效。但是,即使对于那些设法使模块编译的人,我也不明白如何pip
安装本地编译的包,而不是从 pypy 获取它们(并失败)。
如何在具有 M1 处理器的计算机上安装numpy
、scipy
和numexpr
其他依赖项?
解决方案
- 使用Homebrew安装 Miniforge 以在本地编译这些模块:
brew install miniforge
. - 安装您需要的模块,
conda
而不是pip
:(conda install numpy
和scipy
,numexpr
...)。 - 在您安装依赖项的环境(全局、用户或虚拟环境
venv
,pew
或类似)中,像往常一样安装,但让您的包管理器知道加载您之前安装的这些本机模块,方法是定义PYTHONPATH
:在 install 命令前加上PYTHONPATH=/opt/homebrew/Caskroom/miniforge/base/pkgs/:$PYTHONPATH
. 例如:PYTHONPATH=/opt/homebrew/Caskroom/miniforge/base/pkgs/:$PYTHONPATH pip3 install
。