Backtracking начинается, когда выбранная версия приводит resolver к тупику и pip возвращается назад, чтобы проверить другого кандидата в графе зависимостей. Это поиск.

Наблюдайте за повторяющимся именем

Подробный журнал показывает пакет, версии которого перебираются снова и снова, а слишком широкий диапазон заставляет resolver исследовать длинную историю релизов.

Сузьте пространство обоснованно

Добавьте реалистичный нижний предел или constraint на проблемный пакет после чтения changelog и проверки поддерживаемых версий, затем убедитесь в чистом venv, что граница не исключила совместимый рабочий вариант.

Не ставьте случайный верхний предел

Жесткое ограничение ускорит ошибку, но способно заблокировать будущие исправления, поэтому рядом нужна причина, тест и дата пересмотра такого решения.

Если поиск длится долго, сохраните полный лог и исходные требования до экспериментов, иначе удачное случайное ограничение будет невозможно объяснить или повторить.

Неустранимый случай описывает ошибка ResolutionImpossible. Алгоритм объясняет More on Dependency Resolution.