При создании виртуальной среды в Python часто используется python -m venv. Однако в области науки о данных и искусственного интеллекта есть также мощный инструмент управления средой, называемый Conda. Conda помогает управлять как пакетами, так и средами одновременно.

В этой статье мы рассмотрим концепцию Conda, различия между Anaconda и Miniconda, а также то, как Conda-среда работает независимо от системы.


1. Что такое Conda?

Conda — это менеджер пакетов и сред, который широко используется в области науки о данных, искусственного интеллекта и машинного обучения. Изначально он был разработан для Python, но сейчас поддерживает различные языки, такие как R, Ruby, Lua и другие.

С помощью Conda можно эффективно выполнять следующие задачи:

  • Устанавливать и управлять различными пакетами одновременно
  • Создавать виртуальные среды, независимые от операционной системы
  • Поддерживать разные версии Python для каждого проекта

Терминология

  • Conda-среда (environment): виртуальная среда с независимым пространством пакетов
  • conda-forge: репозиторий пакетов, поддерживаемый сообществом Conda
  • Anaconda: дистрибутив, который включает Conda и часто используемые в науке о данных пакеты (Numpy, Pandas, Jupyter и др.)
  • Miniconda: минимальный дистрибутив, содержащий только Conda, который позволяет устанавливать необходимое количество пакетов вручную

2. Почему Conda? Сравнение с python -m venv

В стандартной библиотеке Python есть инструмент для создания виртуальной среды под названием venv. Тем не менее, в области науки о данных Conda предпочитается по следующим причинам:

  • venv управляет только Python пакетами, тогда как Conda может управлять не-Python зависимостями (C, C++, CUDA и др.)
  • Conda отлично решает конфликты версий пакетов и автоматически настраивает бинарные файлы для разных операционных систем
  • В venv все необходимо устанавливать через pip, в то время как Conda позволяет управлять стабильными распределениями через пакетные каналы как conda-forge

Таким образом, в области научных вычислений или машинного обучения способность решать конфликты с различными внешними библиотеками является важной, и здесь Conda демонстрирует превосходные результаты.


3. Различия между Anaconda и Miniconda

Пункт Anaconda Miniconda
Размер по умолчанию Очень большой (около 3-4 ГБ) Очень маленький (сотни МБ)
Включенные пакеты Включает numpy, pandas, matplotlib, Jupyter и т.д. Содержит только Conda
Время установки Долгое Быстрое
Целевая аудитория Новички, желающие сразу начать разработку Пользователи, которым требуется легкая установка и выбор пакетов

Особенности Anaconda

  • Возможность немедленного анализа данных после установки
  • Включает инструменты визуализации, Jupyter Notebook и др.

Особенности Miniconda

  • Легкая и быстрая установка
  • Возможность установки только необходимых компонентов → высокая гибкость

4. Как Conda-среда отделяется от системы?

Conda-среды создаются в полностью отделенных директориях от основной системы. Это дает следующие преимущества:

  • Не влияет на системную Python-среду
  • Позволяет настраивать независимые среды для каждого проекта
  • Среду можно сохранить в .yml файле, что позволяет легко воспроизводить ее

Сравнение с Docker

Пункт Conda Docker
Уровень изоляции Пользовательский уровень (виртуальная среда) Уровень операционной системы (контейнер)
Цель использования Управление пакетами и библиотеками Полная изоляция и развертывание системы
Размер Относительно легкий Тяжелый
Скорость выполнения Быстро Может быть медленным (включая время запуска образа)

Docker обеспечивает полную изоляцию, но Conda обычно проще в настройке и больше подходит для задач в области науки о данных.


5. Как установить

Как установить Anaconda

  1. https://www.anaconda.com/download — скачайте установочный файл для вашей ОС
  2. Установите с помощью графического мастера или через CLI
  3. После завершения установки доступны команды anaconda-navigator или conda

Как установить Miniconda

  1. https://docs.conda.io/en/latest/miniconda.html — скачайте установочный файл
  2. После установки настройте окружение с помощью conda init, conda config

6. Анонс следующей статьи

В этой статье мы рассмотрели концепцию Conda и различия между основными дистрибутивами, Anaconda и Miniconda. Мы также объяснили, почему Conda подходит для научной работы лучше, чем -m venv.

В следующей статье мы планируем обсудить, как на самом деле создать и управлять Conda-средой, а именно:

  • Создание среды с помощью conda create
  • Активация и удаление среды
  • Сводка часто используемых команд Conda

Таким образом, в следующей статье мы перейдем к практическому созданию рабочей среды!

Символическая цифровая кобра, представляющая среды Conda, окруженная сеткой с облаком и значками системы