Вирішення проблеми “зовнішнього керованого середовища” в Python pip на Ubuntu 23.04 та Fedora 38
Якщо ви активно використовуєте Python і нещодавно перейшли на Ubuntu 23.04 або Fedora 38, ви, ймовірно, зіткнулися з повідомленням про помилку “зовнішнє кероване середовище” при спробі встановити пакети через pip, пакетний менеджер Python.
Ця ситуація може викликати роздратування та здивування, оскільки така помилка не зустрічалася в попередніх версіях Ubuntu, Fedora та інших дистрибутивах. Давайте розберемося, що саме спричиняє цю проблему і як швидко її усунути.
Причини виникнення помилки “зовнішнє кероване середовище”
В останніх версіях Linux дистрибутивів впроваджено стандарти, що базуються на PEP-668. Ці зміни гарантують, що pip не встановлює пакети глобально за замовчуванням.
Це зроблено для уникнення конфліктів між системним менеджером пакетів та інструментами керування пакетами Python. Детальніше про це можна прочитати в офіційній документації PEP-668. Якщо ви хочете обійти або відключити цей механізм, є три способи зробити це.
1. Видалення файлу “EXTERNALLY-MANAGED”
Це найпростіший спосіб виправити помилку “зовнішнього керування” pip. Вам потрібно перейти до каталогу /usr/lib/python3.xx (де xx – версія вашого Python) і видалити файл EXTERNALLY-MANAGED. Ось команди для цього:
cd /usr/lib/python3.11
sudo rm EXTERNALLY-MANAGED
Після цього помилка має зникнути. Якщо ви захочете відновити цей механізм, просто створіть цей файл знову за допомогою команди touch:
sudo touch EXTERNALLY-MANAGED
Тепер ви зможете без проблем встановлювати пакети за допомогою pip або pip3.
2. Використання віртуальних середовищ для встановлення пакетів pip
Інший підхід полягає у використанні віртуальних середовищ для вашого Python-проекту. Віртуальні середовища допомагають ізолювати пакети конкретного проєкту від операційної системи, а також підтримувати порядок у вашій роботі.
Ось як створити віртуальне середовище і встановити пакети за допомогою pip:
- Створіть віртуальне середовище за допомогою команди:
python3 -m venv venv
- Активуйте його за допомогою команди source, виконавши скрипт активації з каталогу bin:
source venv/bin/activate
У командному рядку має з’явитися назва вашого віртуального середовища. Тепер ви можете встановлювати будь-які потрібні пакети Python.
Як бачите, спочатку пакет openai не вдалося встановити, але після створення та активації віртуального середовища, встановлення пройшло успішно.
3. Використання pipx для встановлення пакетів Python
pipx – це утиліта для встановлення пакетів Python в ізольованих віртуальних середовищах. Вона автоматично створює віртуальні середовища для кожного пакета та створює символічні посилання на пакети у папці .local/bin, що дозволяє викликати їх з командного рядка.
Використання pipx допомагає уникнути помилки “зовнішнього керованого середовища”, тому що пакети встановлюються у віртуальних середовищах. Щоб використовувати pipx, спочатку потрібно встановити його за допомогою менеджера пакетів вашого дистрибутива.
Для систем на основі Ubuntu/Debian:
sudo apt-get install pipx
Для систем на основі Arch:
sudo pacman -S pipx
Для Fedora/CentOS/RHEL:
sudo dnf install pipx
Після встановлення pipx, використовуйте його аналогічно pip для встановлення пакетів. Ось приклад команди:
pipx install openai
Більше інформації про pipx можна отримати на сторінці довідки, використовуючи команду man.
Тепер ви знаєте, як виправити помилку “зовнішнього керування”
Вирішивши проблему “зовнішнього керованого середовища”, ви зможете продовжити роботу над своїм проєктом або загальним програмуванням на Python. Якщо вас цікавить останнє, можливо, варто розглянути різні способи навчання програмуванню в ігровій формі, які допоможуть вам вивчити Python чи іншу мову ефективніше та цікавіше.