Обновите текущий env с требованиями, описанными в meta.yaml - PullRequest
0 голосов
/ 25 августа 2018

Я хотел бы обновить текущий env, juste после git pull, с правилом в Makefile, совместимом со всеми ОС.

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

Как можно обновить текущий env с требованиямиприсутствует в 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 :, run: и test:

1 Ответ

0 голосов
/ 31 августа 2018

Одним из решений является создание сценария, который позаботился бы о «объединении» требований в 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.

...