Подтвердить что ты не робот

Файл экспорта среды Anaconda

Как сделать файл среды anaconda, который можно использовать на других компьютерах?

Я экспортировал мою среду python anaconda в YML, используя conda env export > environment.yml. Экспортированный environment.yml содержит эту строку prefix: /home/superdev/miniconda3/envs/juicyenv, которая сопоставляется с моим местоположением anaconda, которое будет отличаться на других ПК.

4b9b3361

Ответ 1

Я не могу найти в спецификациях conda ничего, что позволяло бы вам экспортировать файл среды без строки prefix: .... Однако, как отметил Алекс в комментариях, conda, похоже, не заботится о строке префикса при создании среды из файла.

Имея это в виду, если вы хотите, чтобы другой пользователь не знал ваш путь установки по умолчанию, вы можете удалить строку префикса с помощью grep перед записью в environment.yml.

conda env export | grep -v "^prefix: " > environment.yml

В любом случае другой пользователь запускает:

conda env create -f environment.yml

и среда будет установлена в путь по умолчанию для среды conda.

Если вы хотите указать путь установки, отличный от используемого по умолчанию для вашей системы (не связанный с 'prefix' в environment.yml), просто используйте флаг -p, за которым следует требуемый путь.

conda env create -f environment.yml -p /home/user/anaconda3/envs/env_name

Обратите внимание, что Conda рекомендует создавать environment.yml вручную, что особенно важно, если вы хотите поделиться своей средой на разных платформах (Windows/Linux/Mac). В этом случае вы можете просто пропустить строку prefix.

Ответ 2

Самый простой способ сохранить пакеты из среды для установки на другом компьютере:

$ conda list -e > req.txt

тогда вы можете установить среду с помощью

$ conda create -n new environment --file req.txt

если вы используете pip, используйте следующие команды: ссылка https://pip.pypa.io/en/stable/reference/pip_freeze/

$ env1/bin/pip freeze > requirements.txt
$ env2/bin/pip install -r requirements.txt

Ответ 3

Я считаю, что экспорт пакетов только в строковом формате является более переносимым, чем экспорт всей среды conda. Как уже предлагал предыдущий ответ:

$ conda list -e > requirements.txt

Однако этот requirements.txt содержит номера сборок, которые нельзя переносить между операционными системами, например между Mac и Ubuntu. В conda env export у нас есть опция --no-builds, но не с conda list -e, поэтому мы можем удалить номер сборки, введя следующую команду:

$ sed -i -E "s/^(.*\=.*)(\=.*)/\1/" requirements.txt 

И воссоздать среду на другом компьютере:

conda create -n recreated_env --file requirements.txt