在 Conda environment.yaml 中设置 channel_priority
Set the channel_priority in Conda environment.yaml
是否可以在使用yaml文件创建环境时将channel_priority
设置为strict
?例如:
name: my_environment
channels:
- conda-forge
dependencies:
- python
- geopandas
- rasterio
感谢merv。
解决方法是为每个包指定频道:
name: my_environment
channels:
- conda-forge
dependencies:
- conda-forge::python
- conda-forge::geopandas
- conda-forge::rasterio
直接回答你的问题,不,我不认为可以将channel_priority
添加到环境文件中。也许将其提高为 a Conda issue(如果它还不存在;)。
其他值得尝试的方法是将 defaults
显式添加到频道列表中,但优先级较低,例如...
name: my_environment
channels:
- conda-forge
- defaults
dependencies:
- python
- geopandas
- rasterio
一种直接的方法是首先创建空环境并将通道优先级设置为严格,然后从规范文件安装包:
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
另外一个注意事项是,不需要在 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
.
获得(可能具有稍微不那么先进的版本)
是否可以在使用yaml文件创建环境时将channel_priority
设置为strict
?例如:
name: my_environment
channels:
- conda-forge
dependencies:
- python
- geopandas
- rasterio
感谢merv。
解决方法是为每个包指定频道:
name: my_environment
channels:
- conda-forge
dependencies:
- conda-forge::python
- conda-forge::geopandas
- conda-forge::rasterio
直接回答你的问题,不,我不认为可以将channel_priority
添加到环境文件中。也许将其提高为 a Conda issue(如果它还不存在;)。
其他值得尝试的方法是将 defaults
显式添加到频道列表中,但优先级较低,例如...
name: my_environment
channels:
- conda-forge
- defaults
dependencies:
- python
- geopandas
- rasterio
一种直接的方法是首先创建空环境并将通道优先级设置为严格,然后从规范文件安装包:
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
另外一个注意事项是,不需要在 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
.