使用meta.yaml中描述的要求更新当前env

问题描述 投票:4回答:1

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

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

如何使用meta.yaml中的要求更新当前的env?

导出方法复制依赖项和版本,它特定于平台(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:

anaconda conda miniconda
1个回答
1
投票

一种解决方案是创建一个脚本来处理“组合”buildtestrun中的需求;并为env.yaml生产所需的conda

meta_update.朋友

#!/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

© www.soinside.com 2019 - 2024. All rights reserved.