P. *_*eri 3 python anaconda conda
channels:如果我在文件中指定env.yml,则用于创建环境的包确实来自此通道。
$ cat env.yml
channels:
- conda-forge
- nodefaults
dependencies:
- python=3.8
- numpy
Run Code Online (Sandbox Code Playgroud)
创建环境:
$ conda env create -n test -f env.yml
$ conda activate test
Run Code Online (Sandbox Code Playgroud)
这些软件包是通过正确的渠道安装的:
$ 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
Run Code Online (Sandbox Code Playgroud)
但是,当我稍后在这个环境中安装其他软件包时,它们仍然来自默认通道:
$ conda config --show channels
channels:
- defaults
Run Code Online (Sandbox Code Playgroud)
我如何告诉 conda 一劳永逸地设置此环境的某些通道,并且可以在 内部完成吗environement.yml?
这是通过 YAML 无法实现的。但是,可以设置特定于环境的配置设置。
conda activate test
conda config --env --append channels conda-forge --append channels nodefaults
Run Code Online (Sandbox Code Playgroud)
关键是参数--env:这会编辑目录.condarc中的a envs/test/,该目录优先于任何系统级或用户级.condarc。但是,这两个.condarc文件都会被加载,因此如果您defaults在 中明确包含~/.condarc该文件,它仍然会显示在特定于环境的文件之后。