在使用yaml文件创建环境时,可以将channel_priority
设置为strict
吗?例如:
name: my_environment
channels:
- conda-forge
dependencies:
- python
- geopandas
- rasterio
发布于 2021-01-31 19:20:29
另一个注意事项是,给定包的指定通道不需要在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
获得(可能是稍微不那么尖端的版本)。
发布于 2019-12-18 10:44:09
多亏了梅尔夫。
解决办法是为每个包指定通道:
name: my_environment
channels:
- conda-forge
dependencies:
- conda-forge::python
- conda-forge::geopandas
- conda-forge::rasterio
发布于 2021-01-13 06:58:48
一种简单的方法是首先创建空环境并将通道优先级设置为严格,然后从spec文件中安装包:
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
https://stackoverflow.com/questions/58555389
复制相似问题