【问题标题】:How to specify the architecture or platform for a new conda environment? (Apple Silicon)如何为新的 conda 环境指定架构或平台? (苹果硅)
【发布时间】:2020-12-22 21:26:50
【问题描述】:

有没有办法在创建新的 conda 环境时指定架构/平台?或者,conda 在运行时如何检测其当前架构/平台?

我的目标是:我在 Apple Silicon 笔记本电脑上运行。我预先存在的环境通过 Rosetta2 运行良好,但我想开始试验在 Apple Silicon 上本地运行的 python。 miniforge 提供了一个带有 Apple Silicon 构建的 conda-forge 存储库,我可以告诉 conda 在创建环境时使用 conda-forge 通道。但是除了从 miniforge 的安装程序开始之外,我还没有找到一种方法来指定我希望这是一个 arm64 环境而不是 x86_64 环境。

提前致谢。

【问题讨论】:

  • 它应该从操作系统中检测到它。
  • 我确定这是真的,它是从操作系统中检测到的。但是也许您可以准确地分享它是如何做到的,或者在哪里,或者通过什么变量,或者如何覆盖检测?
  • 你可以试试setting subdir constraints,这是 Conda 有效隔离不同平台 (win/osx/linux) 和架构 (32/64) 的方式。
  • @merv 谢谢!这看起来是正确的答案。我想我必须将它与 conda 命令结合使用来指定一个频道而不是使用频道后备。可以工作。如果你想把你的评论变成一个完整的答案,我会尝试并选择它为正确的。

标签: anaconda conda miniconda anaconda3


【解决方案1】:

CONDA_SUBDIR=osx-arm64 conda create -n native numpy -c conda-forge 将为您提供 osx-arm64 原生环境。

【讨论】:

  • 谢谢!我让它与CONDA_SUBDIR=osx-arm64 conda create -n py39_native python=3.9 -c conda-forge --override-channels 一起工作我很确定你需要最后一点。如果您想将其添加到您的答案中,我会认为它是正确的。
  • --override-channels 不是绝对必要的。如果您的频道中已有 -c conda-forge,则不需要 -c conda-forge,但无论如何添加它。
  • 这应该在创建后在新环境中运行:conda env config vars set CONDA_SUBDIR=osx-arm64 否则以后的安装将恢复到 osx_64
  • @isuruf --override-channels 可以防止用户在其配置设置中设置其他子目录的情况。没有它,"flexible" 的默认 channel_priority 设置使用户可以使用 Conda 从指定的子目录之外解决包。或者,也可以为频道使用"strict" 优先级。所以是的,不是绝对必要的,但这是一个很好的防御建议。
  • @Bob 谢谢,这解决了我的问题。
猜你喜欢
  • 2016-10-21
  • 2021-05-11
  • 1970-01-01
  • 2021-09-08
  • 1970-01-01
  • 2017-07-28
  • 2021-07-22
  • 1970-01-01
  • 2022-08-16
相关资源
最近更新 更多