n1ro°
RU

Компьютеры · Инструкция

pip: externally-managed-environment — что делать

PEP 668 позволяет дистрибутиву пометить системный Python как externally managed. Для проекта используйте виртуальное окр

Редакция N1RO · Проверено

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

PEP 668 позволяет дистрибутиву пометить системный Python как externally managed. Для проекта используйте виртуальное окружение; для системного пакета — менеджер пакетов ОС.

Почему системный Python стал externally managed

PEP 668 позволяет дистрибутиву пометить системный Python как externally managed. Для проекта используйте виртуальное окружение; для системного пакета — менеджер пакетов ОС.

Создаём виртуальное окружение вместо глобальной установки

  1. Создайте `python -m venv .venv`.
  2. Активируйте окружение.
  3. Устанавливайте зависимости внутрь venv.
  4. Для системного пакета проверьте пакетный менеджер ОС.

Когда использовать пакетный менеджер ОС

PEP 668 появился именно для того, чтобы pip не ломал файлы, которыми управляет системный пакетный менеджер. Для библиотеки проекта нормальный путь — venv; для отдельной CLI-утилиты часто подходит pipx; для системного пакета — менеджер дистрибутива. `--break-system-packages` оставляйте как осознанный override, а не стандартный рецепт.

Чем опасен --break-system-packages

`--break-system-packages` — сознательный обход защиты с риском конфликтов.

Как PEP 668 объясняет эту блокировку

Первичный ориентир для этой страницы — Python Packaging Authority: «PEP 668 — Externally Managed Environments». Если интерфейс, версия устройства или условия изменились, сверяйте актуальную редакцию именно этого источника.

Что учитывать

PEP 668 позволяет дистрибутиву пометить системный Python как externally managed. Для проекта используйте виртуальное окружение; для системного пакета — менеджер пакетов ОС.

Источники и проверка

Фактическая часть сверена по первичным источникам (в т.ч. PEP 668 — Externally Managed Environments). Пример и формулировки — редакция N1RO на 2026-09-17.