Если вы недавно обновили свою дистрибуцию Linux (например, Ubuntu 23.04 или более позднюю версию) и попытались установить пакет Python глобально с помощью pip, вы, возможно, столкнулись с раздражающим сообщением об ошибке:
ошибка: внешне-управляемая-среда
Эта ошибка не является багом; это преднамеренная защита, введённая предложением по улучшению Python (PEP) 668. Её цель - предотвратить случайное повреждение операционной системы пользователями путем изменения или удаления основных пакетов Python, которые управляются родным менеджером пакетов системы (таким как apt или dnf).
Хотя это необходимая мера безопасности, она может остановить ваш рабочий процесс разработки. Этот гид объяснит причину ошибки и предложит три самых эффективных решения - от наилучшей практики до быстрого (но рискованного) исправления.
Понимание ошибки "внешне-управляемая-среда" (PEP 668)
Основная проблема заключается в конфликте контроля. Ваша операционная система зависит от конкретных версий пакетов Python для своей функциональности. При использовании pip install глобально, вы рискуете перезаписать или удалить эти критически важные для системы пакеты, что может привести к нестабильности или сбою системы.
PEP 668 решает эту проблему, добавляя файл с именем EXTERNALLY-MANAGED в каталог установки Python системы. Когда pip обнаруживает этот файл, он отказывается устанавливать пакеты глобально, вынуждая вас использовать более безопасный метод.
Решение 1: Наилучшая практика - Используйте виртуальную среду (venv)
Рекомендуемое и наиболее надежное решение - использовать . Виртуальная среда создает изолированную, самостоятельную установку Python для каждого проекта, позволяя вам устанавливать, обновлять и удалять пакеты, не влияя на глобальную систему или другие проекты.





Принцип изоляции, делающий виртуальные среды незаменимыми для разработки на Python, также критически важен для профессиональных веб-операций, таких как веб-скрейпинг и сбор данных.
Когда вы используете библиотеки Python (такие как