Чтобы улучшить воспроизводимость в моей команде, я экспортировал файл среды conda во вновь созданный репозиторий, работающий под управлением conda env export > environment.yml
.
Идея состоит в том, чтобы мои коллеги скачали репозиторий, запустили conda env create -f environment.yml
и были готовы использовать код.
Однако некоторые из моих коллег указали мне, что внизу файла yaml есть:
- readline=7.0=hc1231fa_4
- requests=2.18.4=py35h0d65e6b_1
- setuptools=38.5.1=py35_0
- six=1.11.0=py35h39a4c60_1
- sqlite=3.22.0=h3efe00b_0
- tk=8.6.7=h35a86e2_3
- urllib3=1.22=py35he002d57_0
- wheel=0.30.0=py35h5c0b906_1
- xz=5.2.3=h0278029_2
- zlib=1.2.11=hf3cbc9b_2
prefix: </path/to/your/anaconda/distribution>/envs/<env-name>/bin
последняя строка с переменной prefix
фактически показывает имя моей машины и уникальный путь к установке miniconda.
Когда мои коллеги пытались загрузить окружение, скрипт у них работал нормально, а это значит, что переменная prefix
практически игнорируется conda.
Раньше я работал с virtualenvs, и идея о том, что мой абсолютный путь ведет к файлу, который должен быть общим, чтобы сделать вещи воспроизводимыми на разных машинах, действительно сбивает меня с толку.
Итак, мой вопрос: для чего используется префиксная переменная и есть ли способ экспортировать файл среды conda без нее?