Contents

Hoe de pip "extern beheerde omgeving" fout op Linux op te lossen

Als je vaak met Python werkt en onlangs bent overgestapt op Ubuntu 23.04 of Fedora versie 38, is de kans groot dat je de “extern beheerde omgeving” fout bent tegengekomen bij het installeren van pakketten met de Python pakketbeheerder, pip.

Het kan een bron van frustratie zijn om een probleem tegen te komen dat zich niet voordeed in vorige iteraties van besturingssystemen zoals Ubuntu en Fedora. Het begrijpen van de hoofdoorzaak van dit probleem en het vinden van een snelle oplossing zal de sleutel zijn om de zaak effectief op te lossen.

Waarom de “extern beheerde omgeving” fout optreedt

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

De meest recente iteraties van elke Linux distributie hebben de specificaties beschreven in PEP omarmd, wat heeft geresulteerd in een wijziging van het installatiegedrag van pip pakketten, zodat ze niet langer standaard binnen een globaal bereik worden geïnstalleerd.

Dit is geïmplementeerd in een poging om conflicten te voorkomen tussen de pakketbeheerder van de distributie en de pakketbeheergereedschappen van Python. De details zijn te vinden in de officiële PEP-668 documentatie . Als u dit mechanisme wilt terugdraaien of opheffen, kunt u drie benaderingen gebruiken.

Verwijder het “EXTERNALLY-MANAGED” bestand

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

Om het probleem van een extern beheerd pakket in de Pip bibliotheek op te lossen, kan men een eenvoudige procedure volgen door naar de directory “/usr/lib/python3.xx” te navigeren en het “EXTERNALLY-MANAGED” bestand in die directory te verwijderen. De specifieke stappen voor het uitvoeren van deze taak bestaan uit het uitvoeren van de volgende commando’s:

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

Volg deze stappen om het probleem op te lossen en de ontbrekende functionaliteit te herstellen:1. Gebruik de opdracht ’touch’ om het benodigde configuratiebestand opnieuw te genereren. Dit kan gedaan worden door “touch /etc/system/system/multi-user.wants/sleep.override” in uw terminal te typen.2. Controleer of het bestand succesvol is aangemaakt door de aanwezigheid ervan te controleren met de opdracht “ls -l /etc/system/system/multi-user.wants/”. Het bestand zou nu moeten verschijnen als een gewoon bestand met leesrechten voor eigenaar en groep.

 sudo touch EXTERNALLY-MANAGED 

Het installatieproces zou nu soepel moeten verlopen met pip of pip3.

Virtuele omgevingen gebruiken om pip pakketten te installeren

Een alternatieve strategie bestaat uit het gebruik van virtuele omgevingen als een effectieve manier om specifieke programmeerafhankelijkheden te scheiden van het onderliggende besturingssysteem en tegelijkertijd een overzichtelijke organisatie van het project te vergemakkelijken.

Volg deze stappen om een virtuele omgeving op te zetten en pakketten te installeren met pip:

⭐ Maak eerst de virtuele omgeving aan met:

 python3 -m venv venv 

⭐ Source het activate bestand in de bin directory met het source commando:

 source venv/bin/activate 

Door je shellprompt te updaten met de naam van de virtuele omgeving kun je een overvloed aan Python-pakketten installeren die aan je wensen voldoen, waardoor je ontwikkelervaring wordt verbeterd.

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

Bij de eerste poging leverde de installatie van het OpenAI Python pakket problemen op. Na het aanmaken en activeren van een virtuele omgeving werd het installatieproces echter probleemloos uitgevoerd.

Pipx gebruiken om Python-pakketten te installeren

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

PipX dient als een efficiënt hulpmiddel voor het implementeren van Python-bibliotheken binnen gevirtualiseerde of afgeschermde omgevingen. Het stroomlijnt processen zoals het aanmaken van virtuele omgevingen op maat van individuele pakketten en het maken van symbolische verbindingen tussen deze pakketten en hun overeenkomstige binaire bestanden in de .local/bin-directory van de gebruiker. Hierdoor hebben gebruikers altijd toegang tot elk pakket dat via PipX is geïnstalleerd en kunnen ze dit direct vanuit hun commandoregelinterface gebruiken.

Het gebruik van pipx voor pakketinstallatie biedt een oplossing voor het probleem van “extern beheerde omgeving” fouten door pakketten binnen virtuele omgevingen te installeren. Om pipx te gebruiken, installeer je het eerst via de standaard pakketbeheerder van je besturingssysteem.

Op Ubuntu/Debian derivaten:

 sudo apt-get install pipx 

Op Arch-gebaseerde systemen:

 sudo pacman -S pipx 

Op Fedora/CentOS/RHEL:

 sudo dnf install pipx 

Na het installeren van pipX, kan men het op een analoge manier gebruiken als pip voor het installeren van pakketten. Overweeg bijvoorbeeld het volgende illustratieve commando:

 pipx install openai 

Voor meer informatie over pipx, wordt het raadplegen van de manual pagina sterk aangeraden door gebruik te maken van het “man” commando.

Nu weet je hoe je de “extern beheerde” fout kunt oplossen

Nadat het probleem met een extern beheerde omgeving met succes is opgelost, kan iemand verder werken aan zijn project of uitgebreidere oefensessies houden met het gebruik van Python als primaire programmeertaal. Voor mensen met bredere doelstellingen die zowel persoonlijke ontwikkeling als plezier omvatten, kan het de moeite waard zijn om alternatieve benaderingen te verkennen voor het verwerven van vaardigheid in Python of andere talen door middel van gamificatiemethoden, die meeslepende en bevredigende ervaringen bieden door elementen van spelontwerp in het leerproces op te nemen.