如果我在
channels:
文件中指定 env.yml
,则用于创建环境的包确实来自此通道。
$ 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
参数:这会编辑 .condarc
目录中的 envs/test/
,该目录优先于任何系统或用户级别 .condarc
。但是,两个 .condarc
文件都会被加载,因此,如果您在 defaults
中明确包含 ~/.condarc
,它仍然会显示在特定于环境的文件之后。