Conda — кроссплатформенный менеджер пакетов и окружений для Python, R и других языков. Главное преимущество перед pip: управление бинарными зависимостями вне Python-экосистемы. CUDA-библиотеки, BLAS/LAPACK, OpenCV — conda устанавливает их как предкомпилированные пакеты без сборки из исходников.
Как работает Conda
Conda создаёт изолированные окружения: каждое содержит свою версию Python, интерпретатора и набор пакетов. Окружения хранятся в ~/miniconda3/envs/ и полностью независимы. Переключение между проектами с разными версиями Python — одна команда. Пакеты берутся из каналов: defaults (Anaconda Inc.) и conda-forge (сообщество, 25 000+ пакетов).
Основные команды
conda create -n myenv python=3.11 # создать окружение
conda activate myenv # активировать
conda deactivate # выйти из окружения
conda install numpy pandas # установить из defaults
conda install -c conda-forge scipy # из канала conda-forge
conda env export > environment.yml # экспорт конфигурации
conda env create -f environment.yml # воссоздать окружение
conda list # список установленных пакетов
conda update conda # обновить conda
Сравнение Conda с pip/venv
| Характеристика | conda | pip + venv |
|---|---|---|
| Языки | Python, R, Julia, C++ | Только Python |
| Бинарные зависимости | Предкомпилированные | Нужен компилятор |
| CUDA/GPU | Нативно через conda-forge | Ручная установка |
| Скорость solver | Медленнее (mamba быстрее) | Быстрее |
| Размер окружения | Больше (бинарники) | Меньше |
История
Conda разработана Трейвисом Олифантом (Travis Oliphant, автором NumPy) в Continuum Analytics (ныне Anaconda Inc.) в 2012 году. Anaconda — дистрибутив Python с предустановленными научными пакетами весом ~3 ГБ. Miniconda — минимальный вариант только с conda (~400 МБ). conda-forge — независимый канал с тысячами пакетов от сообщества, запущен в 2015 году. Mamba (2020) — drop-in замена conda на C++ с параллельным solver в 10–100× быстрее.
Conda в хостинге и ML
На VPS conda используется для ML/data science окружений: TensorFlow, PyTorch, scikit-learn с CUDA — сложная стопка бинарных зависимостей, которую conda разрешает без конфликтов. Для GPU-серверов conda-forge предоставляет CUDA Toolkit совместимых версий. В Docker: образ continuumio/miniconda3 — отправная точка для ML-контейнеров.
Mamba — ускоренная альтернатива
Mamba (2020) — drop-in замена conda на C++ с параллельным SAT-solver. Решает зависимости в 10–100× быстрее conda. Установка: conda install -n base -c conda-forge mamba. После этого все команды заменяются: mamba install numpy вместо conda install numpy.
Практические сценарии на VPS
Деплой ML-модели на VPS через conda:
# Установка Miniconda
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh -b -p $HOME/miniconda3
# Создание окружения из файла
conda env create -f environment.yml
# Запуск приложения в окружении
conda run -n myenv python app.py
В Docker conda-образы часто используют для ML: continuumio/miniconda3 как базовый образ, затем RUN conda install pytorch torchvision -c pytorch. Это проще, чем ручная установка CUDA и бинарных библиотек через pip. GPU-серверы с NVIDIA: conda-forge предоставляет cudatoolkit совместимых версий прямо в окружении.