问题:如何使用.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!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。