В основном это удобство - то есть команда conda install
достаточно выразительна, чтобы указать любой приоритет канала. Например, можно указать рекомендуемые приоритеты каналов Bioconda вручную при каждой установке:
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
и обычно достаточно различны для захвата канала происхождения, если канал не входит в глобальную конфигурацию channels
, то сборки не будут найдены, если система воссоздает env не имеет этого канала в своей конфигурации.
Дополнительное использование
Также стоит подчеркнуть, что флаг --env
позволяет устанавливать каждый параметр конфигурации на основе env-specifici c, а не только для каналов. Это может быть полезно для некоторых крайних случаев, таких как указание ограничения подкаталога (например, win-32 vs win-64 ) или включение экспериментальных функций как pip_interop_enabled
только в c envs.