【问题标题】:Why would one add a channel to a conda environment?为什么要向 conda 环境添加通道?
【发布时间】:2020-06-21 10:02:20
【问题描述】:

可以通过向 conda 添加通道(例如 conda-forge)

conda config --add channels conda-forge

为了完整起见,从 conda 4.2 开始,可以通过以下方式将通道(例如 conda-forge)添加到特定环境

conda config --env --add channels conda-forge

(see also this post).

我想知道除了在不指定-c conda-forge 的情况下安装软件包的纯粹便利性之外,是否还有其他考虑因素,为什么人们可能想要添加(或不)通道到 conda/特定的 conda 环境?

添加频道有什么优点/缺点吗?

【问题讨论】:

    标签: python anaconda conda


    【解决方案1】:

    这主要是为了方便 - 即,conda install 命令的表达能力足以指定任何通道优先级。例如,可以在每次安装时手动指定the recommended Bioconda channel priorities

    conda install -n metagenomics_env --override-channels -c conda-forge -c bioconda -c defaults kraken
    

    但是在每个环境的基础上设置它,让我们设置并忘记

    conda activate metagenomics_env
    conda config --env --add channels defaults
    conda config --env --add channels bioconda
    conda config --env --add channels conda-forge
    ...
    conda install -n metagenomics_env kraken
    

    当一个项目的多样性不利于制定单一的全球渠道优先级时,这会非常有用。

    应该注意的一个问题是运行conda env export 总是会导致导出全局通道配置。虽然构建 ID 包含在 environment.yml 中,并且通常足够不同以捕获原始通道,但如果通道不在全局 channels 配置中,那么如果系统重新创建 env 将找不到构建在他们的配置中没有那个频道。


    其他用途

    还值得强调的是,--env 标志允许在特定于环境的基础上设置每个配置选项,而不仅仅是通道。这对于某些边缘情况很有用,例如 specifying a subdir constraint(例如,win-32win-64)或仅在特定环境中启用实验性功能 like pip_interop_enabled .

    【讨论】:

      猜你喜欢
      • 2019-04-07
      • 1970-01-01
      • 2021-12-03
      • 2021-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-13
      • 2019-03-09
      相关资源
      最近更新 更多