Anaconda 和升级到新的 M1 Mac

Anaconda and upgrading to new M1 Mac

背景

我刚得到一个新的 M1 mac mini dev machine,并使用苹果的迁移助手从我的旧 x86 mac 迁移。

这样做还将我所有的 conda 环境复制到新的 machine(它们都在我的主目录中)

我安装了最新版本的 anaconda 和 anaconda 加上我所有的 python 代码和环境似乎工作正常(这包括一堆 wheel 模块,特别是 numpy/scipy)。

我对下面的问题进行了大量谷歌搜索,但在任何地方都找不到任何好的答案 - 所以我想我会问,因为这似乎是一种很常见的情况,其他人会 运行变成

问题

这里的答案会随着时间的推移而演变,所以这是我截至 2021 年 1 月 27 日掌握的最新知识。

在仿真模式下安装 conda 完全没问题。您需要做的就是在终端 运行 中以仿真模式安装它,或者使用尚未移植的终端仿真器安装它。

一旦您的 conda 环境启动并 运行ning,其他一切看起来和感觉就像在 x86 Mac 上一样。

如果您想了解更多详细信息,我 blogged about my experience。希望对你有帮助。

大约 2 周前我得到了我的 M1,并设法从 conda-forgepip 本地安装了我需要的所有东西。您可以下载安装程序 here。 自 5Feb 起,osx-arm64 也正式支持 Homebrew。

截至 2021 年 7 月的快速更新。

TLDR

  • conda-forge group have a M1 native conda installer here.
  • 安装很简单 - 运行 安装程序,你有 conda up 和 运行ning。
  • 这将安装一个 M1 原生 conda,conda 的默认环境将默认 安装 M1 原生 python 版本和 M1 原生版本模块(如果可用).
  • 似乎有 原生 osx 大多数常见模块的 M1 原生轮 现在可以在 conda-forge 频道上获得。

现状

似乎 Anaconda 仍然 没有原生 M1 版本,Miniconda 也没有。 ...我不明白为什么它花了这么长时间而且似乎都没有原生 M1 支持,但这是一个单独的问题。

备选

但是,正如上面提到的 steff,conda-forge(如 the group responsible for maintaining the conda-forge channeldoconda 版本有一个安装程序本身就是原生 M1,并且还设置您的环境以在可用的情况下拉动 M1 原生轮子。他们称之为 Miniforge.

他们的github是here

他们的 Miniforge 的各种安装程序(通过直接下载、curl 或自制程序)可以在他们的 github 页面(上图)上找到 - 直接 link 到 ARM 原生 miniforge安装程序是 here.

在 conda-forge 上快速搜索显示几乎所有常用模块现在都有可用的原生 M1 轮子。 (寻找支持平台'osx-arm64` 例如numpy

注意事项

我还没有对此进行过广泛的测试,我不确定如果有非 M1 车轮可用会发生什么(我相信它会默认下载无拱形版本)。

我也没有 sure/haven 测试过是否可以将 M1 车轮与 x86 mac 车轮混合搭配。 (我猜这会起作用,但还没有尝试过)。

我也只使用 conda 的 pip 进行了最少的测试,以及它 recognizes/tries 到 download/resolves M1 与 x86 pip 包的性能。

我通过 miniforge(Apple 版)和 Spyder(Intel 版)通过自制软件安装了 python3 的本机版本,除了一个例外,一切正常,我观察到一个奇怪的行为将“图形后端”选项设置为“自动”而不是“内联”。

Spyder >>> 首选项 >>> IPython 控制台 >>> 图形 >>> 图形后端 >>> 内联或自动

当我使用“inline”选项启动 Spyder 并切换到“automatic”时,打开的内核功能与预期的一样。但是,如果我打开新控制台,它们根本无法工作。重新启动 Spyder 后问题仍然存在。我设法在单独的 window 中绘制图形的唯一方法是启动 Spyder,并将 IPython 控制台“图形后端”设置为“内联”,然后将其更改为“自动”。

如果我 运行 python3 通过终端,绘制图形也能正常工作。

我的安装命令是:

brew install --cask miniforge
conda init zsh
conda activate
brew install --cask spyder
brew install PyQt@5
pip3 install matplotlib

2022/03/02 回答
原生 M1 安装现在非常简单。以下是 Miniforge 和 Miniconda 的一些选项。

(1) 在 Miniforge 中使用 Apple 的 Tensorflow 说明
这使用与上述相同的 Miniforge 解决方案,但包括 M1 优化的 Tensorflow 安装,这意味着 TF 可以访问 M1 GPU 内核。

在以下位置查找“arm64:Apple Silicon”部分:
https://developer.apple.com/metal/tensorflow-plugin/

(2) 运行 带有 Miniforge 的原生 M1 和带有 Miniconda 的 Rosetta side-by-side(Jeff Heaton 2021/11 年的教程)
Jeff 基本上使用 Apple 的上述解决方案来安装本机 Miniforge。

https://www.youtube.com/watch?v=w2qlou7n7MA

(3) 使用原生M1 Miniconda 2021/11 年发布了原生 M1 Miniconda 安装程序:Miniconda3 macOS Apple M1 64-bit bash (Py38 conda 4.10.1 2021-11-08)

https://docs.conda.io/en/latest/miniconda.html

我的经历
我根据 Jeff 的教程成功 运行 side-by-side 安装,并做了一些更改。这非常简单,我验证了在原生 M1 Miniforge 环境中,Numpy 使用优化的 BLAS/LAPACK 线性代数库,并且 Tensorflow 具有 GPU 访问权限。 运行 Miniconda 本地 M1 安装程序后,我会在这里更新。

您可以通过 Anaconda 查看此 anouncement。您现在可以在 M1 MAC 上直接使用 Anaconda。

"The 2022.05 release of Anaconda Distribution features native compiling for Apple M1’s ARM64 architecture (boasting 20% faster compute), Anaconda Navigator 2.1.4, conda 4.12.0, as well as several new and updated packages. 2022.05 is also the last release that will support win32."