Anaconda和升级到新的M1Mac
背景
我刚买了一台新的 M1 mac mini 开发机器,并使用苹果的迁移助手从我的旧 x86 mac 迁移过来。
这样做还会将我所有的 conda 环境复制到新机器上(它们都在我的主目录中)
我安装了最新版本的 anaconda 和 anaconda 加上我所有的 python 代码和环境似乎工作正常(这包括一堆轮子模块,特别是 numpy/scipy)。
我为下面的问题做了一堆谷歌搜索,但在任何地方都找不到任何好的答案 - 所以我想我会问,因为这似乎是其他人会遇到的很常见的情况
问题
- 有谁知道conda forge提供的python/numpy/scipy等M1本机版本的状态?
- 我认为 python/numpy 等环境中的所有二进制文件都仍然是旧的 x86 版本,因为它们都在我的主目录中的环境中,并通过仿真运行。那么,如果/在可用时,您如何将它们更改/更新为 M1 arm 原生版本?
回答
截至 2021 年 7 月的快速更新。
TLDR
- 该畅达锻组有M1本地
conda安装在这里。 - 安装很简单 - 运行安装程序,您就可以
conda启动并运行了。 - 这将安装M1 本机 conda,并且该 conda 的默认环境将默认安装 M1 本机 python 版本和 M1 本机版本模块(如果可用)。
- conda-forge 频道上现在似乎有适用于大多数常见模块的原生 osx M1 原生轮子。
当前状态
似乎 Anaconda仍然没有原生 M1 版本,Miniconda 也没有。 ...我不明白为什么花了这么长时间,而且似乎都没有原生 M1 支持,但这是一个单独的问题。
选择
但是,正如 steff 上面提到的,conda-forge(在负责维护 conda- forge 频道的小组中)确实有一个安装程序,他们的版本conda本身就是原生 M1,并且还设置了您的环境以在可用的情况下拉出 M1 原生轮子。他们称之为Miniforge。
他们的 github 在这里。
他们的各种安装程序Miniforge(通过直接下载、curl 或自制软件)可以在他们的 github 页面(上图)上找到 - ARM 本地 miniforge 安装程序的直接链接在这里。
快速搜索 conda-forge 显示的几乎所有常见模块现在都有可用的原生 M1 轮子。(寻找支持平台“osx-arm64”,例如numpy)
注意事项
我还没有对此进行过广泛的测试,我不确定如果有非 M1 轮子会发生什么(我相信它会默认下载无拱形版本)。
我也不确定/尚未测试是否可以将 M1 车轮与 x86 mac 车轮混合搭配。(我猜这会起作用,但还没有尝试过)。
我也只使用 conda 进行了最少的测试pip,以及它如何识别/尝试下载/解析 M1 与 x86 pip 包。
回答
此处的答案将随着时间的推移而演变,因此这是我截至 2021 年 1 月 27 日所掌握的最新知识。
在仿真模式下安装 conda 完全正常。您需要做的就是将其安装在以仿真模式运行的终端中,或者使用尚未移植的终端仿真器进行安装。
一旦您的 conda 环境启动并运行,其他一切看起来和感觉就像在 x86 Mac 上一样。
如果你想了解更多细节,我在博客上写了我的经历。希望对你有帮助。
- I will be instaling miniconda for my Macbook M1. What is emulation mode? What's wrong if I just followed miniconda website? https://docs.conda.io/en/latest/miniconda.html
回答
大约 2 周前,我拿到了 M1,并设法从conda-forge和安装了我本机需要的所有东西pip。您可以在此处下载安装程序。截至 2 月 5 日,osx-arm64 也正式支持 Homebrew。