conda:在 environment.yml 中设置环境特定频道
conda: set environment specific channels in environment.yml
如果我在 env.yml
文件中指定 channels:
,则用于创建 env 的包确实来自此频道。
$ cat env.yml
channels:
- conda-forge
- nodefaults
dependencies:
- python=3.8
- numpy
创建环境:
$ conda env create -n test -f env.yml
$ conda activate test
软件包已通过正确的渠道安装:
$ conda list
# packages in environment at /home/mathurin/anaconda3/envs/test:
#
# Name Version Build Channel
_libgcc_mutex 0.1 conda_forge conda-forge
_openmp_mutex 4.5 1_gnu conda-forge
但是,当我在这个环境中安装其他软件包时,它们仍然来自默认渠道:
$ conda config --show channels
channels:
- defaults
我如何告诉 conda 一劳永逸地为这个环境设置通道,它可以在 environement.yml
中完成吗?
这无法通过 YAML 实现。但是,可以设置特定于环境的配置设置。
conda activate test
conda config --env --append channels conda-forge --append channels nodefaults
关键是 --env
参数:这会在 envs/test/
目录中编辑 .condarc
,这将优先于任何系统级或用户级 .condarc
.但是,这两个 .condarc
文件都将被加载,因此如果您在 ~/.condarc
中明确包含 defaults
,它仍会在特定于环境的文件之后显示。
如果我在 env.yml
文件中指定 channels:
,则用于创建 env 的包确实来自此频道。
$ cat env.yml
channels:
- conda-forge
- nodefaults
dependencies:
- python=3.8
- numpy
创建环境:
$ conda env create -n test -f env.yml
$ conda activate test
软件包已通过正确的渠道安装:
$ conda list
# packages in environment at /home/mathurin/anaconda3/envs/test:
#
# Name Version Build Channel
_libgcc_mutex 0.1 conda_forge conda-forge
_openmp_mutex 4.5 1_gnu conda-forge
但是,当我在这个环境中安装其他软件包时,它们仍然来自默认渠道:
$ conda config --show channels
channels:
- defaults
我如何告诉 conda 一劳永逸地为这个环境设置通道,它可以在 environement.yml
中完成吗?
这无法通过 YAML 实现。但是,可以设置特定于环境的配置设置。
conda activate test
conda config --env --append channels conda-forge --append channels nodefaults
关键是 --env
参数:这会在 envs/test/
目录中编辑 .condarc
,这将优先于任何系统级或用户级 .condarc
.但是,这两个 .condarc
文件都将被加载,因此如果您在 ~/.condarc
中明确包含 defaults
,它仍会在特定于环境的文件之后显示。