#Что происходит и когда возникает ошибка
Восстановление среды из requirements.txt безопаснее выполнять в новом виртуальном окружении, не изменяя текущие пакеты. Список требований может содержать закреплённые версии, внешние URL и локальные пути — их нужно проверить до запуска установки.
#Причины и признаки
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| В файле версии конфликтуютЗафиксированные пакеты требуют несовместимые зависимости. | При установке появляется ResolutionImpossible | Разобрать конфликт на тестовой среде. |
| Список содержит недоступные или приватные пакетыТребования ссылаются на внешний ресурс или прежнюю машину. | pip запрашивает логин, Git URL или путь на чужую машину | Уточнить безопасный источник и права. |
| Снимок создан под другой системойВерсии и нативные зависимости не переносимы без проверки. | Нет wheel для нужной версии Python/платформы | Подобрать поддерживаемые окружения и сборки. |
#Подробная диагностика и исправление
- Проверьте файл перед исполнениемОткройте
requirements.txtобычным текстовым редактором, просмотрите все строки. Особое внимание уделите--index-url,--extra-index-url, ссылкамgit+...,-e, локальным путям и закреплённым версиям. Не устанавливайте зависимости из неизвестного источника: команды из такого файла могут запускать сборочный код.
- Определите целевую системуВ терминале машины, на которой будет работать приложение, выполните проверку версии и архитектуры Python. Сравните их с документированными требованиями приложения. Если нужен другой Python, установите его отдельно и не меняйте системный интерпретатор.Linux · Терминал (Bash)КомандаКоманда только читает параметры ОС и Python.
python -c "import sys,platform; print(sys.version); print(platform.system(),platform.machine())"
- Создайте чистое окружение рядом с проектомВ папке проекта вызовите
python -m venv .venv-restore. Убедитесь, что среда создана и её Python доступен. На Windows путь.venv-restore\Scripts\python.exe, на Linux/macOS —.venv-restore/bin/python. Не перезаписывайте действующее окружение.Linux · Терминал (Bash)КомандаОбычный пользователь. Запускайте выбранным Python соответствующей версии.python -m venv .venv-restore
- Предварительно проверьте разрешение версийАктивируйте только что созданное окружение и в современных pip выполните dry-run. Команда показывает план, но ещё не выполняет установку. Если у вашей версии pip нет
--dry-run, проверьте установку непосредственно в пустой пробной среде. - Дополнительная команда по темеLinux · Терминал (Bash)КомандаВ активной .venv-restore; может обращаться к сети и к настройкам индексов, но не устанавливает пакет.
python -m pip install --dry-run -r requirements.txt
- Установите требования через Python нужной средыПри успешном предварительном разборе вызовите установку в .venv-restore. На Linux/macOS используйте команду ниже, в Windows —
.\.venv-restore\Scripts\python.exe -m pip install -r requirements.txt. Если установка прервётся, не переключайте приложение на новую среду до устранения причин. - Linux/macOS; изменяет только .venv-restoreLinux · Терминал (Bash)С осторожностьюLinux/macOS; изменяет только .venv-restore. Файл требований должен находиться в текущем каталоге.
./.venv-restore/bin/python -m pip install -r requirements.txtКоманда может изменить состояние системы или её настройки. Проверьте параметры и последствия перед запуском.
- Проверьте структуру установленных зависимостейВызовите
pip checkиз нового окружения. При корректных метаданных будетNo broken requirements found.. Затем запустите минимальный пример из документации приложения и тестовый сценарий с обычными данными; один лишь успех pip не доказывает совместимость API. - Linux/macOS; Windows: .\.venv-restore\Scripts\python.exe -m pip checkLinux · Терминал (Bash)КомандаLinux/macOS; Windows: .\.venv-restore\Scripts\python.exe -m pip check.
./.venv-restore/bin/python -m pip check
- Переключите приложение и сохраните возможность откатаПосле тестов сохраните точный способ запуска с новым Python, перечень установленных версий и исходный requirements.txt. Измените конфигурацию редактора/службы только после проверки и резервной копии; при регрессии верните прежний интерпретатор и сохранённый конфигурационный файл.
- Разберите нестандартные проблемы установкиЕсли не найден релиз, проверьте Python и индекс; если
Failed building wheel, проверьте сборочные инструменты; еслиCERTIFICATE_VERIFY_FAILED, исправьте доверие к сертификатам. Не решайте эти проблемы отключением TLS,--no-depsили прав администратора без необходимости.
#Проверка результата и действия при неуспехе
В новой .venv-restore все нужные зависимости доступны, pip check не сообщает конфликтов, а приложение работает на тестовых данных. Старую среду сохраняйте до завершения проверки.
Если исправление не помогло, вернитесь к точному сообщению об ошибке, сохраните версию Python, адрес целевого окружения и очищенный от секретов журнал; выясните, на каком шаге результат отличается от ожидаемого. Не изменяйте глобальный Python ради устранения сбоя проекта.