在Conda环境.yaml中设置channel_priority

问题描述 投票:0回答:5

使用yaml文件创建环境时是否可以将

channel_priority
设置为
strict
?例如:

name: my_environment
channels:
  - conda-forge
dependencies:
  - python
  - geopandas
  - rasterio
python conda environment
5个回答
17
投票

一个额外的注意事项是给定包的指定频道不需要在

channels
部分中列出。我发现这更安全,因为它没有从意外渠道(重新)安装某些其他软件包的风险。

所以,例如:

channels:
  - defaults

dependencies:
  - python =3.8
  - ...
  # specifically from conda-forge (but only those):
  - conda-forge::nbsphinx

代替:

# NO!
channels:
  - defaults
  - conda-forge

dependencies:
  - python =3.8
  - ...
  - conda-forge::nbsphinx

重要的是,这似乎只安装conda-forge中指定的软件包,并且它不会尝试(重新)安装那些依赖关系图中但已经可用的软件包的

conda-forge
版本(也许有一个稍微不那么前沿的版本)来自
pkgs/main
    


11
投票
merv

解决方法是为每个包指定通道:
name: my_environment channels: - conda-forge dependencies: - conda-forge::python - conda-forge::geopandas - conda-forge::rasterio



1
投票
channel_priority

添加到环境文件中。也许将此作为

Conda 问题
提出(如果尚不存在;)。 其他值得尝试的事情是将

defaults

显式添加到频道列表中,优先级较低,就像这样......


name: my_environment channels: - conda-forge - defaults dependencies: - python - geopandas - rasterio



1
投票

conda create new_env conda activate new_env conda config --env --add channels conda-forge conda config --env --set channel_priority strict conda env update --name new_env --file env.yml

注意:如果使用 .txt 规范文件而不是 .yml,则将最后一行替换为 

conda install --name new_env --file env.txt

参考文档:
https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html#id13


0
投票
channel::package

方法。但是,我可以通过指定显式构建号来帮助创建环境。 例如,不要要求:

afakelib=12.7.5.75

我会检查内部版本号并提供它(这会减少选择坏版本的机会)

afakelib=12.7.5.75-0

© www.soinside.com 2019 - 2024. All rights reserved.