Если вы управляете средой разработки Python с помощью conda, я рекомендую сначала прочитать приведенную ниже статью.
- Предварительное чтение:
Введение в Conda, Anaconda и Miniconda
Данная статья кратко подводит итоги, а также представляет практическое руководство по созданию, удалению, клонированию и переносу среды conda.
1. Однострочное резюме: Anaconda против Miniconda
В кратце, можно сказать следующее.
-
Anaconda:
→ это дистрибутив, который устанавливает множество пакетов часто используемых в науке о данных/машинном обучении. -
Miniconda:
→ предоставляет только функции управления средой/пакетами,
где разработчик сам выбирает и устанавливает необходимые пакеты, создавая минималистичный дистрибутив.
Я предпочитаю “начинать с легкости и добавлять пакеты только по мере необходимости”, поэтому,
я рекомендую установить Miniconda и на его основе настраивать среду.
-
Занимает меньше места на диске
-
Обновления проще и менее хлопотные
-
Можно устанавливать только те пакеты, которые действительно нужны для проекта, что упрощает организацию среды.
2. Быстрое знакомство с концепцией среды conda
“Среда (environment)” в conda — это набор Python/пакетов, изолированный для каждого проекта.
-
env A: Python 3.10 + Django 4 + определенные версии библиотек -
env B: Python 3.11 + FastAPI + совершенно другой набор библиотек
Ключевым моментом является изоляция различных версий, чтобы они не мешали друг другу.
Основные команды, часто используемые для управления средой, следующие:
# Просмотр списка текущих установленных conda сред
conda env list
# Или
conda info --envs
3. Создание среды conda
3.1 Создание самой базовой среды
conda create -n myenv python=3.12
-
-n myenv: задает имя среды какmyenv -
python=3.12: используется версия Python 3.12
После создания среды:
conda activate myenv # активация среды
conda deactivate # деактивация среды
3.2 Установка часто используемых пакетов при создании
conda create -n myenv python=3.12 numpy pandas matplotlib
Создается новая среда, в которую устанавливаются перечисленные пакеты из базового канала Miniconda.
После этого можно:
conda activate myenv
conda install scikit-learn
# Или
pip install requests
добавлять пакеты по мере необходимости.
4. Удаление среды conda
Неиспользуемые среды лучше удалять.
(среды conda могут занимать довольно много места на диске.)
# Удаление среды myenv
conda env remove -n myenv
После удаления проверьте:
conda env list
Если myenv исчез из списка, значит, все в порядке.
5. Клонирование среды conda
Когда вы хотите создать
“среду с похожими настройками, но с другим именем” для экспериментов.
# создание клонированной среды new-env на основе existing-env
conda create -n new-env --clone existing-env
-
Так как версии пакетов сохраняются,
-
это часто используется, когда “вы хотите оставить существующую среду нетронутой и провести новые эксперименты”.
После клонирования:
conda activate new-env
вы можете проверить, все ли работает.
6. Перенос среды conda
Когда хотите перенести среду на другой ПК или сервер,
самый распространенный способ — экспортировать среду в файл (import/export), а затем создавать новую среду на основе этого файла.
6.1 Экспорт среды (export) – создание файла YAML
# Экспорт среды myenv в файл env.yml
conda env export -n myenv > env.yml
В этом файле env.yml находятся:
-
Имя среды
-
Информация о каналах
-
Установленные пакеты и их версии
Эти данные зафиксированы.
Если вам нужно экспортировать только минимальный список на основе истории
Если вы хотите записать “только те пакеты, которые я установил самостоятельно” вместо полного списка зависимостей:
conda env export -n myenv --from-history > env-min.yml
Создав такой файл, в других средах при create conda автоматически установит необходимые зависимости.
6.2 Создание среды в другом месте (или на той же машине)
На другом ПК, сервере или в новом месте на той же машине:
conda env create -f env.yml
Таким образом создается среда с именем и версиями пакетов, определенными в env.yml.
-
Если в файле
env.ymlуказаноname: myenv, то будет создана именно эта среда -
Если хотите изменить имя, нужно редактировать раздел
name:в файлеenv.ymlперед выполнением
Например, если изменить name: myenv на name: myenv-dev в env.yml:
conda env create -f env.yml
conda activate myenv-dev
Вы получите такую же конфигурацию, но с другим именем.
7. Часто используемые паттерны conda
Когда вы настраиваете свою среду на основе Miniconda, я собрал несколько полезных паттернов, которые часто используются.
-
Создавайте по одной среде для каждого проекта
-
Назовите среду по имени проекта, например
proj-a-env,proj-b-env. -
Это упрощает управление версиями, избегая конфликтов.
-
-
Минимальная установка окружения, расширяйте только по мере необходимости
-
Сначала установите
pythonи несколько основных пакетов. -
По мере работы над проектом используйте
conda installилиpip installдля расширения:→ это соответствует минималистичной философии Miniconda.
-
-
Регулярно экспортируйте важные среды
-
На этапе релиза, перед развертыванием:
bash conda env export -n proj-a-env --from-history > proj-a-env.yml -
Если вы закоммитите этот файл в репозиторий,
то ваши коллеги смогут легко воспроизвести ту же среду.
-
-
Сделайте резервную копию перед крупными изменениями с помощью клонирования
-
Перед обновлением пакетов или изменением версии Python:
bash conda create -n proj-a-backup --clone proj-a-env -
Если возникнут проблемы, можно быстро вернуться к резервной среде.
-

Заключение: Начните с легкости, расширяйтесь по мере необходимости
Итак, выбор прост.
-
Anaconda подразумевает установку “всех пакетов, которые могут понадобиться” сразу же.
-
Miniconda означает “устанавливать только то, что действительно необходимо по мере необходимости”.
В условиях, когда каждый проект требует различных версий Python и наборов пакетов,
комбинация Miniconda + хорошо управляемая среда conda оказывается значительно более гибкой.
Что касается среды:
-
Создайте (
conda create) -
Активируйте (
conda activate) -
Удалите (
conda env remove) -
Клонируйте (
conda create --clone) -
Переносите (
conda env export/conda env create)
Если вы освоите это на базовом уровне, при каждом новом проекте
вы сможете избежать вопросов, подобных “что мне удалить и что заново установить?”
При начале нового проекта:
-
Создайте новую среду на основе Miniconda
-
Установите в нее только те пакеты, которые действительно нужны.
-
Если конфигурация вас устраивает, экспортируйте ее в
env.yml,
а затем немного модифицируйте для следующего проекта.
Как только это станет вашим обычаем, управление окружением conda станет не обременительным, а “надежной привычкой поддерживать чистоту проекта”.
Комментариев нет.