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

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

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

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

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

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

instagram viewer
официална документация на PEP-668. Ако искате да върнете или отмените този механизъм, можете да използвате три подхода.

1. Изтрийте файла „УПРАВЛЯВАН ВЪНШНО“.

Това е най-простата корекция на грешката „външно управлявано“ на pip. Всичко, което трябва да направите, е да навигирате до /usr/lib/python3.xx и изтрийте ВЪНШНО УПРАВЛЕНИЕ файл в директорията. Ето командите за това:

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

Това е всичко, което трябва да направите, за да поправите грешката. Ако решите да възстановите този механизъм, създайте отново същия файл с командата за докосване:

sudo touch EXTERNALLY-MANAGED

Сега трябва да можете да инсталирате пакети безпроблемно с pip или pip3.

2. Използвайте виртуални среди за инсталиране на pip пакети

Друг подход, който можете да предприемете, е да използвате виртуални среди за вашия Python проект. Виртуалните среди са чудесен начин за изолиране на специфични за програмата пакети от операционната система и също така ви позволяват да организирате добре вашия проект.

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

  1. Първо създайте виртуална среда с:
    python3 -m venv venv
  2. Източник на файла за активиране в директорията bin, като използвате командата източник:
    source venv/bin/activate

Вашият команден прозорец трябва да бъде актуализиран с името на виртуалната среда. Сега ще можете да инсталирате всички Python пакети, които желаете.

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

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