pip WindowsLinuxmacOSPython 3

pip: Как проверить список пакетов перед обновлением окружения

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

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

Перед обновлением Python-окружения полезно сохранить точные версии и проверить, какие прямые и косвенные зависимости установлены. pip list, pip freeze и pip check решают разные задачи и не заменяют резервную копию проекта.

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

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

Перед обновлением Python-окружения полезно сохранить точные версии и проверить, какие прямые и косвенные зависимости установлены. pip list, pip freeze и pip check решают разные задачи и не заменяют резервную копию проекта.

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

Возможная причинаКак узнатьЧто делать
Нет снимка предыдущих версийБез зафиксированного списка сложно повторить рабочее окружение.После обновления неизвестно, какие зависимости изменилисьСохранить pip freeze перед работами.
Есть скрытые конфликтыОбновление поверх повреждённого набора может усложнить диагностику.pip check сообщает несовместимость уже установленных пакетовИсправлять несовместимости на копии.
Перечень смешивает лишние пакетыИспользуется общий Python или venv с чужими пакетами.pip list показывает библиотеки других задачСоздать чистое окружение на основе требований проекта.

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

  1. Сначала определите границы проектаОткройте корневую папку приложения и найдите requirements.txt, pyproject.toml или зафиксированный файл зависимостей. Важно понимать, какой Python запускает именно это приложение: в IDE и службах он может отличаться от терминального.
  1. Проверьте интерпретатор и окружениеВ терминале приложения выполните команду, которая покажет исполняемый Python, префикс venv и путь к pip. Если префиксы совпадают, перед вами глобальная установка: не обновляйте её без согласования с другими программами.
    Linux · Терминал (Bash)Команда
    Обычный терминал; только чтение.
    python -c "import sys; print(sys.executable, sys.prefix, sys.base_prefix)"
    python -m pip --version
  1. Сохраните список с точными версиямиВ корне проекта создайте файл before-upgrade.txt: pip freeze перечислит установленное в формате требований. Этот список включает и непрямые зависимости; он не заменяет проектное описание прямых требований. Проверьте, не содержит ли файл приватных адресов Git или токенов перед отправкой кому-либо.
  2. Создаёт локальный файл; для проекта лучше хранить копию в защищённом месте
    Linux · Терминал (Bash)Команда
    Создаёт локальный файл; для проекта лучше хранить копию в защищённом месте.
    python -m pip freeze > before-upgrade.txt
  1. Сделайте читаемую инвентаризациюКоманда pip list --format=json создаёт машиночитаемый перечень, pip list --outdated показывает обновления, доступные в вашем индексе. Последняя требует доступа к сети и не означает, что каждое обновление совместимо с проектом.
  2. Сведения только для текущего интерпретатора, без установки
    Linux · Терминал (Bash)Команда
    Сведения только для текущего интерпретатора, без установки.
    python -m pip list --format=json
    python -m pip list --outdated
  1. Проверьте согласованность зависимостейВыполните python -m pip check. При успехе увидите No broken requirements found.; при ошибке запишите точную пару библиотек и её ограничения. Не обновляйте вслепую все пакеты, пока проект уже содержит конфликт.
    Linux · Терминал (Bash)Команда
    Проверка без модификации окружения; сообщает только конфликты метаданных.
    python -m pip check
  1. Проведите обновление сначала в копииСоздайте новое .venv-test, установите требуемые версии и прогоните тесты. При наличии современных pip можно использовать --dry-run -r requirements.txt для предварительного плана, но он не гарантирует работоспособность приложения. Сохраните новый перечень версий, только затем согласуйте обновление в работе.
  1. Сохраните контрольную точку откатаВместе с before-upgrade.txt сохраните данные о версии Python, ОС, архитектуре, файлах приложения и способе запуска. Если тесты провалились, вернитесь к предыдущему окружению/конфигурации, а не пытайтесь заново угадать версии.

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

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

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

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

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

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