Как я могу сделать файл среды anaconda, который можно было бы использовать на других компьютерах?
Я экспортировал свою среду Python anaconda в YML, используя conda env export > environment.yml
. Экспортированный environment.yml
содержит эту строку, prefix: /home/superdev/miniconda3/envs/juicyenv
которая соответствует местоположению моей анаконды, которое будет отличаться от других компьютеров.
conda env create -f environment.yml
Также, по моему опыту, это не будет работать на разных платформах, потому что conda env будет перечислять многие зависимости, такие как `vs2015_runtime`, если вы работаете в Windows. Но, конечно, это недоступно в Linux.environment.yml
файл вручную, чтобы вы могли неОтветы:
Я не могу найти в
conda
спецификациях ничего, что позволяло бы экспортировать файл среды безprefix: ...
строки. Однако, как отметил Алекс в комментариях, conda, похоже, не заботится о строке префикса при создании среды из файла.Имея это в виду, если вы хотите, чтобы другой пользователь не знал вашего пути установки по умолчанию, вы можете удалить строку префикса с помощью
grep
перед записью вenvironment.yml
.В любом случае другой пользователь запускает:
и среда будет установлена в их путь к среде conda по умолчанию.
Если вы хотите указать путь установки, отличный от пути по умолчанию для вашей системы (не связанный с префиксом в файле environment.yml), просто используйте
-p
флаг, за которым следует требуемый путь.Обратите внимание, что Conda рекомендует создавать
environment.yml
вручную, что особенно важно, если вы хотите поделиться своей средой на разных платформах (Windows / Linux / Mac). В этом случае вы можете просто пропуститьprefix
строку.источник
Самый простой способ сохранить пакеты из среды для установки на другой компьютер:
затем вы можете установить среду, используя
если вы используете
pip
, используйте следующие команды: ссылка https://pip.pypa.io/en/stable/reference/pip_freeze/источник
Linux
Windows
Обоснование: по умолчанию
conda env export
включает информацию о сборке:Вместо этого вы можете экспортировать свою среду без информации о сборке:
Которая отвязывает среду от версии Python и ОС.
источник
Я считаю, что экспорт пакетов только в строковом формате более переносим, чем экспорт всей
conda
среды. Как уже предлагалось в предыдущем ответе:Однако он
requirements.txt
содержит номера сборки, которые нельзя переносить между операционными системами, например междуMac
иUbuntu
. Уconda env export
нас есть опция,--no-builds
но не сconda list -e
, поэтому мы можем удалить номер сборки, выполнив следующую команду:И воссоздаем окружение на другом компьютере:
источник
sed
команда работала довольно хорошо. Пришлось удалить патч-версию. Такmajor.minor.patch
чтобmajor.minor
и это сработало. Оказалось, что нижний номер патча был удален из основных репозиториев.источник