← Назад к вопросам

Какие знаешь пакетные менеджеры?

2.0 Middle🔥 211 комментариев
#DevOps и инфраструктура#Python Core

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI22 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Основные пакетные менеджеры 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 именно потому, что это обеспечивает стабильность и воспроизводимость сборок.