Contents

Så här åtgärdar du 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 har stött på felet “externally-managed-environment” när du installerar paket med Pythons pakethanterare, pip.

Det kan kännas frustrerande att stöta på ett problem som inte förekom i tidigare versioner av operativsystem som Ubuntu och Fedora. Att förstå grundorsaken till problemet och hitta en snabb lösning är nyckeln till att lösa problemet på ett effektivt sätt.

Varför felet “externally-managed-environment” uppstår

/sv/images/pip-externally-managed-error.jpeg

De senaste upplagorna av varje Linux-distribution har anammat specifikationerna i PEP, vilket har resulterat i en ändring av installationsbeteendet för pip-paket så att de inte längre installeras inom ett globalt scope som standard.

Detta implementerades i ett försök att undvika konflikter mellan distributionens pakethanterare och Pythons pakethanteringsverktyg. Du kan läsa mer om detaljerna i den officiella PEP-668-dokumentationen . Om du vill återställa eller åsidosätta denna mekanism kan du använda tre tillvägagångssätt.

Ta bort filen “EXTERNALLY-MANAGED”

/sv/images/deleting-externally-managed-file.jpeg

För att lösa problemet med ett externt hanterat paket i Pip-biblioteket kan man följa en enkel procedur genom att navigera till katalogen “/usr/lib/python3.xx” och ta bort filen “EXTERNALLY-MANAGED” i den katalogen. De specifika stegen för att utföra denna uppgift innebär att du utför följande kommandon:

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

Följ dessa steg för att lösa problemet och återupprätta den saknade funktionen:1. Använd kommandot “touch” för att återskapa den nödvändiga konfigurationsfilen. Detta kan göras genom att skriva “touch /etc/systemd/system/multi-user.target.wants/sleep.override” i din terminal.2. Verifiera att filen har skapats genom att kontrollera dess närvaro med kommandot “ls -l /etc/systemd/system/multi-user.target.wants/”. Filen bör nu visas som en vanlig fil med läsbehörighet för ägare och grupp.

 sudo touch EXTERNALLY-MANAGED 

Du bör nu uppleva en smidig installationsprocess när du använder antingen pip eller pip3.

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

En alternativ strategi är att använda virtuella miljöer som ett effektivt sätt att separera specifika programmeringsberoenden från det underliggande operativsystemet och samtidigt underlätta en ordnad organisation av projektet.

Följ dessa steg för att skapa en virtuell miljö och installera paket med hjälp av pip:

⭐ Skapa först den virtuella miljön med:

 python3 -m venv venv 

⭐ Hämta aktiveringsfilen i bin-katalogen med kommandot source:

 source venv/bin/activate 

Genom att uppdatera skalprompten med namnet på den virtuella miljön kan du installera en mängd Python-paket som passar dina önskemål och därmed förbättra din utvecklingsupplevelse.

/sv/images/using-venv-solves-the-externally-managed-error.jpeg

Vid första försöket stötte installationen av OpenAI Python-paketet på problem, men när en virtuell miljö skapades och aktiverades kunde installationsprocessen genomföras utan några problem.

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

/sv/images/installing-packages-with-pix.jpeg

PipX fungerar som ett effektivt verktyg för att distribuera Python-bibliotek i virtualiserade eller avskärmade inställningar, och effektiviserar processer som att skapa virtuella miljöer som är anpassade för enskilda paket och upprätta symboliska kopplingar mellan dessa paket och deras motsvarande binära filer som finns i användarens .local/bin-katalog. Detta gör att användarna alltid kan komma åt och använda alla paket som installerats via PipX direkt från sitt kommandoradsgränssnitt.

Användning av pipx för paketinstallation erbjuder en lösning på problemet med “externt hanterad miljö”-fel genom att paket installeras i virtuella miljöer. Om du vill använda pipx börjar du med att installera det via standardpakethanteraren i operativsystemet.

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 pipX har installerats kan man använda det på samma sätt som man använder pip för paketinstallation. Tänk till exempel på följande illustrativa kommando:

 pipx install openai 

För ytterligare information om pipx rekommenderas starkt att man läser dess manualsida genom att använda kommandot “man”.

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

Efter att ha löst problemet med en externt hanterad miljö kan man återuppta arbetet med sitt projekt eller delta i mer omfattande övningar där Python används som ett primärt programmeringsspråk. För dem med bredare mål som omfattar både personlig utveckling och nöje kan det vara värt att utforska alternativa tillvägagångssätt för att förvärva kunskaper i Python eller andra språk genom spelifieringsmetoder, som ger uppslukande och tillfredsställande upplevelser genom att införliva element av speldesign i inlärningsprocessen.