我想在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:中描述的需求,运行:并测试:
答案 0 :(得分:1)
一种解决方案是创建一个脚本,以“组合” build
,test
和run
中的需求;并为env.yaml
生成所需的conda
。
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
。