Какие знаешь пакетные менеджеры?
Комментарии (1)
Ответ сгенерирован нейросетью и может содержать ошибки
Основные пакетные менеджеры Python
В экосистеме Python существует несколько важных пакетных менеджеров, каждый с своими особенностями и областями применения.
pip — стандартный менеджер
pip — это дефакто стандартный менеджер пакетов Python. Он поставляется вместе с Python 3.4+ и позволяет устанавливать пакеты из PyPI (Python Package Index).
# Базовые команды pip
pip install package_name # Установка
pip install package_name==1.2.3 # Конкретная версия
pip install -r requirements.txt # Из файла зависимостей
pip uninstall package_name # Удаление
pip list # Список установленных
pip show package_name # Информация о пакете
Преимущества: универсальность, простота, огромный репозиторий PyPI. Недостатки: разрешение зависимостей может быть неоптимальным, нет встроенной изоляции окружения.
poetry — современный подход
Poetry — это современный инструмент, который сочетает управление зависимостями и сборку пакетов. Использует pyproject.toml вместо requirements.txt и создаёт детерминированный poetry.lock файл для воспроизводимых сборок.
# Основные команды Poetry
poetry init # Инициализация проекта
poetry add package_name # Добавление зависимости
poetry add -D dev-package # Dev зависимость
poetry install # Установка из lock файла
poetry lock # Обновление lock файла
poetry build # Сборка пакета
poetry publish # Публикация на PyPI
Преимущества: лучшее разрешение зависимостей, воспроизводимые сборки, интегрированное управление версиями. Это мой выбор для production проектов.
conda — для data science
Conda — менеджер пакетов от Anaconda, популярен в data science сообществе. Может устанавливать не только Python пакеты, но и бинарные зависимости (numpy, scipy и т.д.).
# Команды conda
conda create -n env_name python=3.11
conda activate env_name
conda install package_name
conda env list
conda env remove -n env_name
Преимущества: отличная поддержка scientific пакетов, встроенное управление окружениями, работает с бинарными зависимостями.
uv — суперсовременный менеджер
uv — это новейший менеджер пакетов, написанный на Rust. Он значительно быстрее pip и совместим с pip.
# uv команды похожи на pip, но намного быстрее
uv pip install package_name
uv venv # Создание виртуального окружения
pdm — управление проектами
PDM — это менеджер, работающий с pyproject.toml стандартом, альтернатива Poetry с фокусом на PEP 517/518.
Управление окружениями
Важно понимать разницу между менеджерами пакетов и менеджерами окружений:
- venv — встроенное в Python средство для создания виртуальных окружений
- virtualenv — более мощная альтернатива venv
- conda — одновременно менеджер окружений и пакетов
# Создание виртуального окружения
python -m venv venv
source venv/bin/activate # Linux/Mac
venv\Scripts\activate # Windows
Рекомендации
Для новых проектов рекомендую:
- Poetry для приложений и библиотек — лучшее разрешение зависимостей
- conda для data science — отличная поддержка научных пакетов
- uv для быстрых прототипов — максимальная скорость
- pip + venv для простых скриптов — минимальные зависимости
В нашем текущем проекте используем Poetry именно потому, что это обеспечивает стабильность и воспроизводимость сборок.