【问题标题】:conda: set environment specific channels in environment.ymlconda:在 environment.yml 中设置特定于环境的通道
【发布时间】:2021-11-24 15:05:40
【问题描述】:

如果我在我的env.yml 文件中指定channels:,则用于创建环境的包确实来自该频道。

$ 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 内完成吗?

【问题讨论】:

    标签: python anaconda conda


    【解决方案1】:

    这无法通过 YAML 实现。但是,可以设置特定于环境的配置设置。

    conda activate test
    conda config --env --append channels conda-forge --append channels nodefaults
    

    这是--env 参数的关键:这将编辑envs/test/ 目录中的.condarc,它将优先于任何系统或用户级别的.condarc。但是,两个.condarc 文件都将被加载,因此如果您在~/.condarc 中明确包含defaults,它仍会在特定于环境的文件之后显示。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-14
      • 2019-04-07
      • 1970-01-01
      • 2018-01-12
      • 2019-07-31
      • 1970-01-01
      • 1970-01-01
      • 2019-04-09
      相关资源
      最近更新 更多