Backtracking начинается, когда выбранная версия приводит resolver к тупику и pip возвращается назад, чтобы проверить другого кандидата в графе зависимостей. Это поиск.
Наблюдайте за повторяющимся именем
Подробный журнал показывает пакет, версии которого перебираются снова и снова, а слишком широкий диапазон заставляет resolver исследовать длинную историю релизов.
Сузьте пространство обоснованно
Добавьте реалистичный нижний предел или constraint на проблемный пакет после чтения changelog и проверки поддерживаемых версий, затем убедитесь в чистом venv, что граница не исключила совместимый рабочий вариант.
Не ставьте случайный верхний предел
Жесткое ограничение ускорит ошибку, но способно заблокировать будущие исправления, поэтому рядом нужна причина, тест и дата пересмотра такого решения.
Если поиск длится долго, сохраните полный лог и исходные требования до экспериментов, иначе удачное случайное ограничение будет невозможно объяснить или повторить.
Неустранимый случай описывает ошибка ResolutionImpossible. Алгоритм объясняет More on Dependency Resolution.