anaconda - 使用 meta.yaml 中描述的要求更新当前环境

标签 anaconda conda miniconda

我想在 git pull 之后使用 Makefile 中的规则更新当前的环境,与所有操作系统兼容。

> git pull
> conda env update --meta meta.yaml # Something like that

如何使用 meta.yaml 中存在的要求更新当前环境?

导出方法复制依赖项和版本,并且它特定于平台(Windows、Linux 等)。
> conda env export > export.yaml # Bad solution. Duplicate info from meta.yaml

不确定export.yaml 中是否有相同的要求,并且都在meta.yaml 中进行了描述。

我想要类似的东西
> conda env update --meta meta.yaml

导入构建:,运行:和测试中描述的所有需求:

最佳答案

一种解决方案是创建一个脚本来“组合”build 中的要求。 , test , 和 run ;并产生所需的 env.yamlconda .

meta_update.py

#!/usr/bin/python3
import yaml

with open('meta.yaml', 'r') as meta_file:
    meta = yaml.load(meta_file)

env = {}
for req_type in ['build', 'run', 'test']:   # or more generally: for req_type in meta.keys():
    env.update(meta[req_type])

yaml.dump(env, 'my_env.yaml')

然后在你的 Makefile 中,你可以调用 meta_update.py ,
其次是 conda env update my_env.yaml .

关于anaconda - 使用 meta.yaml 中描述的要求更新当前环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52018570/

相关文章:

python - 使用 Conda 更新特定模块会删除大量软件包

python-2.7 - Conda env 没有加载正确版本的 numpy

python - 为什么 Blender 没有检测到来自 Anaconda 的 python 包?

python - 在 anaconda 中安装 fastai

python-3.x - ValueError : failed to parse CPython sys. 版本 : '3. 5.1 |Anaconda 2.4.1(64 位)

python - 如何决定是否在 ubuntu 终端启动时使用 miniconda

python - PyCharm 终端错误

python - 为 python version=x 启动 ipython qtconsole/notebook 的正确语法是什么

linux - gfortran 将 c 库与 conda 链接

python - pyenv+conda 不安装包