Как да коригирате грешката pip „външно управлявана среда“ на Linux

Ако често работите с Python и наскоро преминахте към Ubuntu 23.04 или Fedora версия 38, вероятно сте попаднали на грешката „външно управлявана среда“, когато инсталирате пакети с мениджъра на пакети на Python, pip.

Това може да е разочароващо и доста изненадващо, тъй като тази грешка никога няма да се появи в по-старите версии на Ubuntu, Fedora и други дистрибуции. Нека научим какво точно причинява тази грешка и как можете бързо да я поправите.

Защо се появява грешката „външно управлявана среда“.

Най-новите версии на всички дистрибуции на Linux приемат стандартите, дефинирани в PEP-668. Тези промени гарантират, че pip пакетите няма да бъдат инсталирани в глобален контекст по подразбиране.

Това беше приложено в опит да се избегне конфликт между мениджъра на пакети на дистрибуцията и инструментите за управление на пакети на Python. За подробности можете да научите в официална документация на PEP-668. Ако искате да върнете или отмените този механизъм, можете да използвате три подхода.

  Как да персонализирате темите на Numix на Linux с OOMOX

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 проект. Виртуалните среди са чудесен начин за изолиране на специфични за програмата пакети от операционната система и също така ви позволяват да организирате добре вашия проект.

  Как да изтеглите и инсталирате TeamViewer на Linux

Ето как да създадете виртуална среда и да инсталирате пакети с pip:

  • Първо създайте виртуалната среда с:
     python3 -m venv venv 
  • Източник на файла за активиране в директорията bin, като използвате командата източник:
     source venv/bin/activate 
  • Вашият команден прозорец трябва да бъде актуализиран с името на виртуалната среда. Сега ще можете да инсталирате всички Python пакети, които желаете.

    Както можете да видите, пакетът openai Python не можа да бъде инсталиран първоначално, но след създаване и превключване към виртуална среда, той се инсталира безупречно.

    3. Използвайте pipx за инсталиране на Python пакети

    pipx е помощна програма за инсталиране на Python пакети във виртуални и изолирани среди. Той автоматизира стъпки като създаване на виртуални среди за всеки пакет и създаване на символни връзки към пакетите в папката .local/bin, така че да можете да извиквате всеки пакет от обвивката по всяко време.

      Как да инсталирате Solus 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 или който и да е език много по-бързо по практически и възнаграждаващ начин.