Як виправити помилку pip «зовнішнє кероване середовище» в Linux

Якщо ви часто працюєте з Python і нещодавно перейшли на Ubuntu 23.04 або Fedora версії 38, швидше за все, ви натрапили на помилку «зовнішнє кероване середовище» під час встановлення пакетів за допомогою менеджера пакетів Python, pip.

Це може бути неприємним і досить несподіваним, оскільки ця помилка ніколи не з’являтиметься в старіших версіях Ubuntu, Fedora та інших дистрибутивах. Давайте дізнаємося, що саме викликає цю помилку та як її можна швидко виправити.

Чому виникає помилка «зовнішнє кероване середовище».

Останні версії всіх дистрибутивів Linux приймають стандарти, визначені в PEP-668. Ці зміни гарантують, що пакунки pip не будуть встановлені в глобальному контексті за замовчуванням.

  6 найкращих інструментів резервного копіювання системи для робочого столу Linux

Це було реалізовано, щоб уникнути конфлікту між менеджером пакетів дистрибутива та інструментами керування пакетами Python. Про подробиці можна дізнатися в офіційна документація PEP-668. Якщо ви бажаєте повернути або скасувати цей механізм, ви можете застосувати три підходи.

1. Видаліть файл «ЗОВНІШНЄ КЕРУВАННЯ».

Це найпростіше виправлення помилки «зовнішнього керування» pip. Все, що вам потрібно зробити, це перейти до /usr/lib/python3.xx і видалити файл, КЕРОВАНИЙ ЗОВНІШНІМ ПІДПРИЄМСТВОМ, у каталозі. Ось команди для цього:

 cd /usr/lib/python3.11
sudo rm EXTERNALLY-MANAGED

Це все, що вам потрібно зробити, щоб виправити помилку. Якщо ви вирішите відновити цей механізм, створіть той самий файл знову за допомогою команди touch:

 sudo touch EXTERNALLY-MANAGED 

Тепер ви зможете безперешкодно встановлювати пакунки за допомогою pip або pip3.

2. Використовуйте віртуальні середовища для встановлення пакетів pip

Інший підхід, який ви можете застосувати, це використання віртуальних середовищ для вашого проекту Python. Віртуальні середовища — це чудовий спосіб ізолювати специфічні пакети програм від операційної системи, а також дозволяють акуратно організувати ваш проект.

  Як грати в Counter-Strike: Global Offensive на Linux

Ось як створити віртуальне середовище та встановити пакунки за допомогою pip:

  • Спочатку створіть віртуальне середовище за допомогою:
     python3 -m venv venv 
  • Виконайте вихідний файл активації в каталозі bin за допомогою команди джерела:
     source venv/bin/activate 
  • У вашій підказці оболонки має бути оновлено назву віртуального середовища. Тепер ви зможете інсталювати будь-які пакети Python, які забажаєте.

    Як бачите, пакет openai Python спочатку не вдалося встановити, але після створення та перемикання у віртуальне середовище він бездоганно встановлюється.

    3. Використовуйте pipx для встановлення пакетів Python

    pipx — це утиліта для встановлення пакетів Python у віртуальних та ізольованих середовищах. Він автоматизує такі дії, як створення віртуальних середовищ для кожного пакета та створення символічних посилань на пакети в папці .local/bin, щоб ви могли завжди викликати кожен пакет із оболонки.

      Як відображати сторінки man у кольорі в Linux

    Використання 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 або будь-яку іншу мову набагато швидше в практичній та корисній формі.