Как вы можете "клонировать" среду conda в корневую среду?

Я хотел бы, чтобы корневая среда Conda копировала все пакеты в другой среде. Как это может быть сделано?

Ответ 1

Вариант 1 - файл YAML

При попытке импортировать пакеты из второй среды в корневую среду:

Во второй среде экспортируйте имена пакетов в файл yaml:

> conda env export > environment.yml  

затем обновите первую среду (см. предложение ниже):

> conda env update -n root -f envoronment.yml     

Смотрите также conda env для более подробной информации. В качестве альтернативы рассмотрите прилагаемую настольную программу Anaconada Navigator для большей наглядности.

Предложение: сделайте резервную копию существующих сред (см. первую команду) перед попыткой внесения изменений в root и проверьте желаемый результат, протестировав эти команды в демонстрационной среде.


Вариант 2 - клонирование среды

Флаг --clone можно использовать для клонирования окружений:

> conda create --name myclone --clone root

Это в основном создает прямую копию среды.


Вариант 3 - Spec файл

Вы также можете создать файл спецификации для добавления зависимостей из одного окружения в другое:

> conda list --explicit > spec-file.txt
> conda install --name root --file spec-file.txt

В качестве альтернативы, копируемые среды (аналогично клонированию):

> conda create --name myenv --file spec-file.txt

Примечание. Spec файлы работают только со средами, созданными в одной и той же ОС.

Ответ 2

Чтобы сделать копию вашей корневой среды (с именем base), вы можете использовать следующую команду; работал для меня с Anaconda3-5.0.1:

conda create --name <env_name> --clone base

вы можете получить список всех пакетов, установленных в среде conda, с помощью следующей команды

conda list -n <env_name>

Ответ 3

При настройке новой среды, и мне нужны пакеты из базовой среды в моей новой (что часто бывает), я создаю в приглашении ту же среду conda, используя spec-file.txt с:

список conda --explicit> spec-file.txt

В spec файле содержатся, например, пакеты базовой среды.

Затем, используя подсказку, я устанавливаю пакеты в новую среду:

conda install --name myenv --file spec-file.txt

Пакеты из базы будут доступны в новой среде.

Весь процесс описан в документе:https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html#building-identical-conda-environments