如何使用另一个 .yml 文件更新预先存在的 conda 环境。这在处理具有多个需求文件的项目时非常有用,base.yml, local.yml, production.yml例如,等等。
base.yml, local.yml, production.yml
例如,下面是一个base.yml包含 conda-forge、conda 和 pip 包的文件:
base.yml
基础.yml
name: myenv channels: - conda-forge dependencies: - django=1.10.5 - pip: - django-crispy-forms==1.6.1
实际环境是通过以下方式创建的: conda env create -f base.yml.
conda env create -f base.yml
稍后,需要将其他包添加到base.yml. 另一个文件,比如说local.yml,需要导入这些更新。
local.yml
以前的尝试包括:
创建local.yml具有导入定义的文件:
channels: dependencies: - pip: - boto3==1.4.4 imports: - requirements/base.
然后运行命令: conda install -f local.yml.
conda install -f local.yml
这不起作用。有什么想法吗?
尝试使用conda env update:
conda activate myenv conda env update --file local.yml --prune
--prune卸载从 中删除的依赖项,正如此答案local.yml中指出的那样。
--prune
建议的答案是部分正确的。您需要添加–prune选项来卸载从 environment.yml 中删除的包。正确的命令:
conda env update -f local.yml --prune
或者不需要激活环境(感谢@NumesSanguis):
conda env update --name myenv --file local.yml --prune
请参阅Conda 用户指南中的更新环境。