问题:如何使用.yml文件更新现有的Conda环境
如何用另一个.yml文件更新先前的conda环境。在具有多个需求文件(例如)的项目上工作时,这非常有用base.yml, local.yml, production.yml
。
例如,下面是一个base.yml
包含conda-forge,conda和pip软件包的文件:
碱基
name: myenv
channels:
- conda-forge
dependencies:
- django=1.10.5
- pip:
- django-crispy-forms==1.6.1
实际环境是使用创建的
conda env create -f base.yml
。
稍后,需要将其他软件包添加到中base.yml
。另一个文件,例如local.yml
,需要导入这些更新。
先前完成此任务的尝试包括:
创建local.yml
具有导入定义的文件:
channels:
dependencies:
- pip:
- boto3==1.4.4
imports:
- requirements/base.
然后运行命令:
conda install -f local.yml
。
这是行不通的。有什么想法吗?
回答 0
尝试使用conda env update:
conda activate myenv
conda env update --file local.yml
或无需激活环境(感谢@NumesSanguis):
conda env update --name myenv --file local.yml
回答 1
建议的答案部分正确。您需要添加–prune选项,以卸载从environment.yml中删除的软件包。正确的命令:
conda env update -f local.yml --prune
回答 2
alkamid的答案是正确的,但是我发现如果环境已经处于活动状态,则Conda无法安装新的依赖项。停用环境首先可以解决此问题:
source deactivate;
conda env update -f whatever.yml;
source activate my_environment_name; # Must be AFTER the conda env update line!