Hur man fixar pip-felet ”externt hanterad miljö” på Linux

By rik

Stöter du på ”extern hanterad miljö”-felet i Python?

Om du ofta använder Python och nyligen bytt till Ubuntu 23.04 eller Fedora version 38, är risken stor att du har stött på felmeddelandet ”extern hanterad miljö” när du installerat paket med Pythons pakethanterare, pip.

Detta kan vara en frustrerande och överraskande upplevelse, då detta fel sällan dök upp i äldre versioner av Ubuntu, Fedora och andra distributioner. Låt oss undersöka vad som orsakar detta fel och hur man snabbt kan lösa det.

Anledningen till ”extern hanterad miljö”-felet

De senaste versionerna av de flesta Linux-distributioner följer de standarder som anges i PEP-668. Dessa ändringar innebär att pip-paket inte installeras i ett globalt sammanhang som standard.

Detta implementerades för att undvika konflikter mellan distributionens pakethanterare och Python-pakethanteringsverktyg. Mer information finns i den officiella PEP-668-dokumentationen. Om du vill kringgå denna mekanism finns det tre möjliga metoder.

1. Radera filen ”EXTERNT HANTERAD”

Detta är den enklaste lösningen på pip-felet ”extern hanterad”. Allt du behöver göra är att navigera till /usr/lib/python3.xx och ta bort filen EXTERNT HANTERAD i den katalogen. Här är kommandona för att göra detta:

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

Det är allt som krävs för att åtgärda felet. Om du vill återställa mekanismen, skapa samma fil igen med kommandot touch:

 sudo touch EXTERNALLY-MANAGED 

Nu bör du kunna installera paket smidigt med pip eller pip3.

2. Använd virtuella miljöer för att installera pip-paket

En annan metod är att använda virtuella miljöer för ditt Python-projekt. Virtuella miljöer är ett utmärkt sätt att isolera projektspecifika paket från operativsystemet, vilket också underlättar en god projektstruktur.

Så här skapar du en virtuell miljö och installerar paket med pip:

  • Skapa den virtuella miljön med:
     python3 -m venv venv 
  • Aktivera sedan activate-filen i bin-katalogen med kommandot source:
     source venv/bin/activate 

Din kommandoprompt uppdateras nu med namnet på den virtuella miljön. Nu kan du installera alla Python-paket du önskar.

Som du ser kunde openai Python-paketet inte installeras initialt, men efter att ha skapat och aktiverat en virtuell miljö, installeras det utan problem.

3. Använd pipx för att installera Python-paket

pipx är ett verktyg för att installera Python-paket i virtuella och isolerade miljöer. Det automatiserar processen att skapa virtuella miljöer för varje paket och skapar symboliska länkar till paketen i mappen .local/bin, vilket gör det möjligt att anropa varje paket från skalet när som helst.

Att använda pipx för att installera paket hjälper till att undvika felet ”extern hanterad miljö”, eftersom paketen installeras i virtuella miljöer. För att använda pipx, installera det först med standardpakethanteraren för din distribution.

På Ubuntu/Debian-baserade system:

 sudo apt-get install pipx 

På Arch-baserade system:

 sudo pacman -S pipx 

På Fedora/CentOS/RHEL:

 sudo dnf install pipx 

När du har installerat pipx, kan du använda det på samma sätt som du skulle använda pip för att installera paket. Här är ett exempel på ett kommando:

 pipx install openai 

För att få veta mer om pipx, kan du läsa dess man-sida med hjälp av kommandot man.

Nu vet du hur du åtgärdar felet ”extern hanterad”

Efter att ha åtgärdat felet ”extern hanterad miljö” bör du kunna fortsätta arbeta med ditt projekt eller träna på allmän Python-programmering. Om du fokuserar på det sistnämnda, kan du kolla in de olika spelifierade metoderna för att lära dig programmering, som kan hjälpa dig att lära dig Python eller vilket språk som helst, mycket snabbare på ett praktiskt och engagerande sätt.