一个人可以通过以下方式向conda添加频道(例如conda-forge)
conda config --add channels conda-forge
出于完整性考虑,由于conda 4.2可以通过以下方式将通道(例如conda-forge)添加到特定环境中
conda config --env --add channels conda-forge
我想知道是否还有其他考虑,除了纯粹无需指定-c conda-forge
来安装软件包的便利性之外,为什么还要向conda /特定conda环境添加(或不添加)通道?
添加渠道是否有优点/缺点?
答案 0 :(得分:3)
主要是方便-即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
总是会导致导出全局通道配置。尽管environment.yml
中包含了构建ID,并且通常具有足够的区别以捕获原始通道,但是如果通道不在全局channels
配置中,则如果重新创建环境的系统在其配置中没有该通道。
值得强调的是,--env
标志使每个配置选项都可以在特定于环境的基础上进行设置,而不仅仅是通道。这对于某些极端情况(例如specifying a subdir constraint(例如, win-32 与 win-64 )或启用实验性功能like pip_interop_enabled
很有用仅在特定环境中。