ResolutionImpossible появляется, когда resolver не может подобрать набор версий, который удовлетворяет всем ограничениям. Последняя строка ошибки редко рассказывает всю историю. Нужны пакеты, которые требуют несовместимые диапазоны одной зависимости.
Сначала сохраните полный вывод
python -m pip install -r requirements.txt -v
Найдите повторяющееся имя пакета и строки вида A depends on C<2, B depends on C>=2. Это прямое противоречие. Иногда конфликт создает ваша точная фиксация версии, а не сами библиотеки.
Проверьте прямые требования
Временно уберите случайные pins, которые не нужны приложению. Не повышайте и не понижайте все пакеты одновременно. Измените одно ограничение, создайте чистый venv и повторите установку. Руководство pip Dependency Resolution рекомендует ослаблять избыточные верхние границы и проверять доступные комбинации.
Установленное окружение тоже нужно проверить
python -m pip check
python -m pip inspect > environment.json
pip check сообщает о несовместимости установленных дистрибутивов. pip inspect создает JSON-описание окружения, полезное при разборе транзитивной цепочки.
Не лечите конфликт случайным порядком команд
Последовательная установка отдельных пакетов может оставить состояние, которое resolver не выбрал бы с нуля. Такой проект ломается на новом компьютере. Исправление должно воспроизводиться одной установкой из requirements.txt или lock-файла. После изменения обязательно прогоните тесты, потому что формальная совместимость версий не гарантирует совместимость поведения.