繁体   English   中英

我可以将频道添加到特定的 conda 环境吗?

[英]Can I add a channel to a specific conda environment?

我想将 conda 通道添加到特定的conda 环境,但是当我使用

conda config --add channels glotzer

该频道现在可从我的所有 conda 环境中使用。 除了从另一个环境测试安装之外, ~/.condarc文件还包含以下内容:

channels:
  - glotzer
  - defaults

我将如何配置 conda 以便该频道只能在特定环境中使用?

我确实在频道文档中发现,对于 conda >= 4.1.0,将频道放在~/.condarc的底部将防止添加的频道覆盖核心包集。

默认情况下,conda 现在更喜欢来自较高优先级频道的包,而不是来自较低优先级频道的任何版本。 因此,您现在可以安全地将频道放在频道列表的底部,以提供不在默认频道中的附加包,并且仍然确信这些频道不会覆盖核心包集。

我希望这可以防止大多数问题,除非在一个环境中您确实希望通过渠道添加的包覆盖核心包。

.condarc 4.2 开始,支持特定.condarc环境的.condarc文件,您可以编写:

conda config --env --add channels glotzer

将通道添加到活动环境的配置中。

[不确定是否在 4.2 中添加了--env标志。 基于 conda 4.5.9 的答案]

更新

截至 2017 年 1 月,无法向单个 conda 环境添加通道。 从 2020 年 12 月开始,现在可以如Christopher Barber 的回答中所述


替代品

如果您想从特定频道安装软件包但不想将该频道添加到全局~/.condarc文件,则应使用该选项从特定频道安装软件包:

conda install <some-package> -c glotzer

您可以创建一个包含conda环境规范的environment.yml文件。 完整的文档在这里,但基本设置如下:

name: EnvironmentName
channels:
    - conda-forge
    - glotzer
dependencies:
    - pip:
        - tensorflow
    - pandas=0.22.*

要使用环境,请键入

conda env create -f environment.yml
conda activate EnvironmentName

要在environment.yml更改或包更新时更新环境,

conda env update -f environment.yml
conda activate EnvironmentName

您可以使用特定频道创建新环境:

conda create -n EnvironmentName -c ChannelName

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM