pip WindowsLinuxmacOSPython 3

pip: Как найти конфликт зависимостей при pip install

  • Обновлено
  • Чтение ≈ 2 минуты

Краткий ответ

Если pip install сообщает ResolutionImpossible или конфликт зависимостей, две библиотеки требуют несовместимые диапазоны версии общей зависимости. Отключение разрешения зависимостей обычно лишь переносит ошибку на запуск.

В этой статье
  1. Что происходит и когда возникает ошибка
  2. Причины и признаки
  3. Подробная диагностика и исправление
  4. Проверка результата и действия при неуспехе

#Что происходит и когда возникает ошибка

Если pip install сообщает ResolutionImpossible или конфликт зависимостей, две библиотеки требуют несовместимые диапазоны версии общей зависимости. Отключение разрешения зависимостей обычно лишь переносит ошибку на запуск.

#Причины и признаки

Возможная причинаКак узнатьЧто делать
Несовместимые закреплённые версииПересечение допустимых версий пусто.Вывод содержит depends on X<... и X>=...Изменить совместимые версии верхнего уровня.
Старые прямые зависимостиУстаревшие ограничения мешают подобрать набор.В requirements.txt закреплено множество прежних выпусковПостепенно обновить верхнеуровневые требования на тестовой копии.
Смешаны источники пакетовПакеты одной версии могут иметь разные зависимости и происхождение.Указаны частный и публичный индексыПроверить безопасные адреса репозиториев и целостность пакетов.

#Подробная диагностика и исправление

  1. Найдите конкретную пару конфликтующих требованийОткройте текст ошибки до строк The conflict is caused by:. Выпишите имена пакетов, указанные диапазоны и текущий файл requirements.txt. Например, один пакет может требовать common<2, другой common>=2; такая пара не может быть установлена одновременно.
  1. Сохраните состояние исходного окруженияВ работающем старом окружении выполните pip freeze и сохраните результат отдельно от существующего requirements.txt. Название файла выберите before-resolution.txt. Эта копия понадобится для отката; не редактируйте исходные закреплённые версии вслепую.
  2. Дополнительная команда по теме
    Linux · Терминал (Bash)Команда
    Терминал в корне проекта; только чтение и создание локального файла с возможными приватными именами пакетов.
    python -m pip freeze > before-resolution.txt
  1. Создайте чистое тестовое окружениеИз корня проекта выполните python -m venv .venv-resolve и активируйте его. Не устанавливайте конфликтующие пакеты в рабочую среду для диагностики — иначе изменятся работающие зависимости.
    Linux · Терминал (Bash)Команда
    Windows/Linux/macOS, обычный пользователь, в отдельном каталоге проекта.
    python -m venv .venv-resolve
  1. Просмотрите прямые ограниченияОткройте requirements.txt в редакторе, найдите пакеты из ошибки. Сверьте их требования в метаданных выпуска. Сначала измените только те ограничения, для которых есть совместимые поддерживаемые версии; при отсутствии решения не используйте --no-deps.
  1. Проверьте новый набор без установкиПосле активации тестового окружения выполните dry-run. Если pip пишет Would install ..., версии могут быть подобраны, но совместимость API пока не доказана. Если снова ResolutionImpossible, разберите новую пару ограничений. Если установленный pip не знает --dry-run, обновите только тестовую среду или используйте попытку установки в ней.
  2. Дополнительная команда по теме
    Linux · Терминал (Bash)Команда
    Только в чистом тестовом окружении и при поддержке --dry-run; требуется доступ к репозиторию.
    python -m pip install --dry-run -r requirements.txt
  1. Проверьте реальные функции и закрепите рабочие версииУстановите проверенный набор в тестовом окружении, выполните python -m pip check и минимальные тесты проекта. Когда всё успешно, зафиксируйте совместимый набор и повторите установку в новом окружении. При регрессии верните старые ограничения и используйте сохранённый before-resolution.txt.

#Проверка результата и действия при неуспехе

Новый набор устанавливается, pip check не находит нарушенных зависимостей и прикладные тесты проходят. Если тесты не прошли, конфликт версий устранён лишь частично.

Если исправление не помогло, вернитесь к точному сообщению об ошибке, сохраните версию Python, адрес целевого окружения и очищенный от секретов журнал; выясните, на каком шаге результат отличается от ожидаемого. Не изменяйте глобальный Python ради устранения сбоя проекта.

Так эту ошибку тоже называют

Источники и обновления

Последнее обновление статьи: 2 ноября 2026. Версии программ и интерфейсы меняются — если шаги не совпадают с вашей версией, сверяйтесь с документацией производителя.