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

时间:2016-11-15 17:44:36

标签: python environment conda

我想将conda频道添加到特定的conda environment但是当我使用

conda config --add channels glotzer

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

channels:
  - glotzer
  - defaults

我如何配置conda以便通道仅在特定环境中可用?

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

  

默认情况下,conda现在优先于较低优先级通道的任何版本的优先级较高的通道中的包。因此,您现在可以安全地将频道放在您的底部   频道列表,以提供不在其中的其他包   默认频道,仍然相信这些频道不会   覆盖核心包集。

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

4 个答案:

答案 0 :(得分:21)

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

conda config --env --add channels glotzer

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

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

答案 1 :(得分:6)

目前无法将通道添加到单个conda环境中。如果您不想将频道添加到全局~/.condarc文件,则应使用该选项从特定频道安装包:

conda install <some-package> -c glotzer

答案 2 :(得分:4)

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

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

答案 3 :(得分:0)

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

conda create -n EnvironmentName -c ChannelName