我已经使用 Anaconda 几年了,但自从我开始使用带有 M1 处理器的 Mac 以来,我不得不处理一些软件包安装的一系列问题,这让我对一些基本概念有点困惑。
例如,我试图安装 Tensorflow,结果发现正确的方法是安装 miniforge,并从 conda-forge 通道(这是 miniforge 的默认通道)获取 Tensorflow,如下所示here https://developer.apple.com/metal/tensorflow-plugin/。
然后,我想知道是否可以使用 Anaconda/Miniconda 执行相同操作...将 conda-forge 通道设置为默认值,并安装 Tensorflow(或任何其他与 arm 兼容的软件包),但是有人告诉我这是不可能的 https://stackoverflow.com/questions/71018491/using-conda-forge-as-default-channel-with-anaconda-to-install-packages-on-mac-pr
所以,现在我试图了解这一切是如何运作的。
如果 conda-forge 通道中存在与 M1 处理器兼容的 Tensorflow 版本(并且确实存在),为什么在将其配置为使用该通道后无法使用 Anaconda/Miniconda 安装它?换句话说,Anaconda/Miniconda 和 Miniforge 之间有什么区别,除了它们寻找软件包的渠道(以及据我所知,还有一些许可证)?
Here https://stackoverflow.com/questions/60532678/what-is-the-difference-between-miniconda-and-miniforge有一个类似的问题,但答案似乎没有解决我主要关心的问题(为什么以 conda-forge 作为默认通道的 Anaconda/Miniconda 与 miniforge 不同)。
这并非不可能,但你必须克服重重困难才能完成它。
首先,如果您安装了 Anaconda,则无法将 conda-forge 包一致地安装到基础环境中,因为anaconda
Anaconda 基础环境中的包会与 conda-forge 中的包冲突。
其次,由于 Anaconda 目前只有 x86_64,因此您只能通过 Rossetta 仿真来安装它。之后,您需要通过设置环境变量 CONDA_SUBDIR 告诉 conda 您需要 arm64 兼容的软件包。
CONDA_SUBDIR=osx-arm64 conda create -n native numpy -c conda-forge
将为您提供一个带有本机 arm64 软件包的新环境。但是,如果您想更新此环境,则必须在所有 conda 命令前加上前缀CONDA_SUBDIR=osx-arm64
.
要永久修复此问题,您可以执行以下操作
conda activate native
conda config --env --set subdir osx-arm64
这将使 conda 使用osx-arm64
对于这个环境。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)