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

Om du ofta arbetar med Python och nyligen bytte till Ubuntu 23.04 eller Fedora version 38, är chansen stor att du stötte på felet ”externt hanterad miljö” när du installerade paket med Python-pakethanteraren, pip.

Detta kan vara frustrerande och ganska överraskande eftersom det här felet aldrig skulle dyka upp i de äldre versionerna av Ubuntu, Fedora och andra distributioner. Låt oss lära oss exakt vad som orsakar det här felet och hur du snabbt kan åtgärda det.

Varför felet ”externt hanterad miljö” uppstår

De senaste versionerna av alla Linux-distributioner antar de standarder som definieras i PEP-668. Dessa ändringar säkerställer att pip-paket inte installeras i ett globalt sammanhang som standard.

Detta implementerades i ett försök att undvika konflikter mellan distributionens pakethanterare och Python-pakethanteringsverktyg. Du kan lära dig mer om detaljerna i officiell PEP-668-dokumentation. Om du vill återställa eller åsidosätta den här mekanismen kan du ta tre tillvägagångssätt.

1. Ta bort filen ”EXTERNT HANTERAD”.

Detta är den enklaste fixen till pip-felet ”externt hanterad”. Allt du behöver göra är att navigera till /usr/lib/python3.xx och ta bort den EXTERNT HANTERADE filen i katalogen. Här är kommandona för att göra det:

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

Det är allt du behöver göra för att åtgärda felet. Om du väljer att återställa den här mekanismen, skapa samma fil igen med pekkommandot:

 sudo touch EXTERNALLY-MANAGED 

Nu ska du kunna installera paket sömlöst med pip eller pip3.

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

Ett annat tillvägagångssätt du kan ta är att använda virtuella miljöer för ditt Python-projekt. Virtuella miljöer är ett utmärkt sätt att isolera programspecifika paket från operativsystemet och låter dig även organisera ditt projekt snyggt.

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

  • Skapa först den virtuella miljön med:
     python3 -m venv venv 
  • Källa in activate-filen i bin-katalogen med hjälp av källkommandot:
     source venv/bin/activate 
  • Din skalprompt bör uppdateras med namnet på den virtuella miljön. Nu kommer du att kunna installera alla Python-paket du vill.

    Som du kan se kunde openai Python-paketet inte installeras först, men efter att ha skapat och bytt till en virtuell miljö, installeras det felfritt.

    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 steg som att skapa virtuella miljöer för varje paket och skapa symboliska länkar till paketen i mappen .local/bin så att du kan anropa varje paket från skalet när som helst.

    Att använda pipx för att installera paket hjälper dig att undvika felet ”externt hanterad miljö” när det installerar paket i virtuella miljöer. För att använda pipx, installera det först med standardpakethanteraren för din distribution.

    På Ubuntu/Debian-derivat:

     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, använd det precis som du skulle använda pip för att installera paket. Här är ett exempel på kommando:

     pipx install openai 

    För att lära dig mer om pipx kan du gå till dess man-sida med hjälp av man-kommandot.

    Nu vet du hur du åtgärdar felet ”externt hanterad”.

    Efter att ha åtgärdat felet ”externt hanterad miljö” bör du kunna fortsätta arbeta med ditt projekt eller öva allmän Python-programmering. Om du är fokuserad på det senare, kanske du vill kolla in de olika spelifierade sätten att lära dig programmering som hjälper dig att lära dig Python, eller vilket språk som helst mycket snabbare på ett praktiskt och givande sätt.