Pip 26.2 получит флаг --only-deps: конец 16-летней эпопее с зависимостями
В грядущей версии pip 26.2, выход которой ожидается в июле 2026 года, должен появиться новый флаг --only-deps. Он позволяет установить все зависимости проекта, перечисленные в pyproject.toml, не устанавливая при этом сам проект как пакет:
pip install --only-deps .
pip install --only-deps .[doc]
Второй вариант дополнительно подтягивает опциональные зависимости. Пул-реквест #13895, реализующий эту возможность, открыл Себастиан Хёффнер 8 апреля 2026 года; он опирается на давнюю дискуссию в issue #11440, поднятую ещё в сентябре 2022 года.
Почему это важно
Задача звучит просто, но десятилетиями не имела аккуратного решения. Речь о проектах, которые не предполагается устанавливать как библиотеку: бэкенды приложений, REST API, обычные скрипты. Для них нужны зависимости, но не установка самого кода в виде пакета.
Автор вспоминает привычные костыли. Классический pip freeze фиксирует точные версии всех пакетов, включая зависимости зависимостей, — но результат оказывается привязан к конкретной машине, версии Python и ОС, и на другом окружении установка нередко ломается. Отсюда рождались рецепты вроде pip freeze --local | grep -v '^\-e' | cut -d = -f 1, отсекающие номера версий, а затем и просто ручное ведение requirements.txt.
Команда pip install -e . работает с самого появления pip в 2008 году и остаётся быстрым способом поставить список зависимостей, но она устанавливает и сам пакет. Для приложений это лишнее, а editable-установки к тому же не считаются хорошей практикой при развёртывании.
Долгий путь сообщества
Автор выстраивает цепочку вопросов на StackOverflow: 16 лет назад советовали pip install -e ., позже — сторонние утилиты pip-chill, pipreqs, затем poetry и hatch, а год назад — uv. Каждый следующий инструмент решал задачу чуть удачнее предыдущего.
Почву подготовили стандарты: PEP 517 (2017) добавил в pyproject.toml хуки для систем сборки, а PEP 735 (2023) ввёл группы зависимостей, позволяющие выбирать, какие именно наборы устанавливать.
Отдельно автор отмечает роль uv — инструмента, который своей скоростью и продуманным интерфейсом (например, uv sync --no-install-project) показал, насколько велик отложенный спрос, и, похоже, подтолкнул давно застрявшие изменения в самом pip к жизни.
Итог автор оценивает без пафоса: небольшое, но приятное улучшение качества жизни, к которому Python-сообщество шло почти двадцать лет — усилиями авторов PEP, мейнтейнеров pip и разработчиков сторонних пакетов.
Источник: Lobsters
Комментарии
Войдите, чтобы комментировать.