Contents

Hoe Python-pakketten installeren in Raspberry Pi OS Bookworm

Belangrijkste vaststellingen

Het Raspberry Pi OS Bookworm vereist de inzet van Python modules binnen een virtueel platform, als voorzorgsmaatregel tegen nadelige interferentie van de standaard implementatie van Python op de host.

Men kan de Apt pakketbeheerder gebruiken om Python modules te zoeken en te installeren. In gevallen waar het pakket niet beschikbaar is of een bijgewerkte versie nodig is, is het echter noodzakelijk om het Pip hulpprogramma te gebruiken binnen een virtuele omgeving.

Binnen een virtuele omgeving hebben wijzigingen of toevoegingen aan Python geen invloed op de systeembrede installatie van Python.

Als u problemen ondervindt bij het installeren van Python-pakketten met behulp van het “pip”-hulpprogramma op Raspberry Pi OS Bookworm, zijn er aanvullende maatregelen die moeten worden uitgevoerd, waaronder het opzetten van een virtuele Python-omgeving. Hieronder vindt u de benodigde procedures voor deze taak.

Wat is er veranderd in Raspberry Pi OS Bookworm?

Bij het upgraden naar het nieuwste Raspberry Pi 5-apparaat is het belangrijk om in gedachten te houden dat het mogelijk niet compatibel is met vorige versies van het besturingssysteem, namelijk het Raspberry Pi OS. Daarom moet er een nieuwe installatie van de onlangs uitgebrachte “Bookworm”-editie worden uitgevoerd om de juiste functionaliteit en compatibiliteit te garanderen.

In vorige versies van het Debian-gebaseerde Raspberry Pi OS, zoals Buster en de daaraan voorafgaande versies, hadden gebruikers de mogelijkheid om Python-pakketten globaal te installeren door gebruik te maken van de pip package manager. Deze functionaliteit is echter verwijderd uit de recentere versie van Raspberry Pi OS, bekend als Bookworm.

Zoals de Raspberry Pi documentatie uitlegt, was het probleem dat het gebruik van een Python-specifieke tool zoals pip conflicten kon veroorzaken met de apt OS package manager.

Daarom is het vanaf Bookworm verplicht om pakketten te installeren binnen een gezuiverde Python virtuele omgeving door gebruik te maken van pip, om mogelijke problemen met de versie van Python van het systeem te voorkomen.

Wanneer wordt geprobeerd om het commando “pip install [pakketnaam]” uit te voeren buiten een virtuele omgeving, wordt een foutmelding gegenereerd die als volgt begint:

 error: externally-managed-environment

× This environment is externally managed
╰─> To install Python packages system-wide, try apt install
  python3-xyz, where xyz is the package you are trying to
  install.

Hoe te zoeken naar Python-pakketten met Apt

De eerste stap bestaat uit het controleren of het vereiste Python-pakket kan worden geïnstalleerd via de systeembrede pakketbeheerder APT (Advanced Package Tool). Om deze taak uit te voeren, kan men het “apt search” commando gebruiken om door de officiële repositories te bladeren en relevante pakketten te vinden.Ter illustratie kun je het volgende commando uitvoeren:

 apt search numpy 

Houd er rekening mee dat je een specifiek pakket met de naam “python3-numpy” moet installeren dat compatibel is met je Python versie 3. Om dit te doen, gebruik je de pakketbeheerder APT samen met het beheerdersrecht dat je krijgt door “sudo” te gebruiken.

 sudo apt install python3-numpy 

In gevallen waar het gewenste Python-pakket niet kan worden verkregen door het gebruik van de APT-pakketbeheerder, of als een bijgewerkte versie nodig is, moet men het gespecialiseerde pip-tool gebruiken binnen een virtuele Python-omgeving voor installatiedoeleinden.

Hoe een virtuele Python-omgeving maken

Om een Python-pakket te installeren met het pip-hulpprogramma in het besturingssysteem Raspberry Pi OS Bookworm, moet eerst een virtuele Python-omgeving worden gemaakt met het venv-commando. Daarom hebben we onze instantie “muo-project” genoemd, hoewel je ook een andere naam kunt kiezen.

 python -m venv muo-project 

De tijd die nodig is voor het voltooien van deze taak kan variëren afhankelijk van het specifieke Raspberry Pi-model dat wordt gebruikt. Vervolgens moet er genavigeerd worden naar de nieuw aangemaakte map van de virtuele omgeving, die een volledige Python-installatie bevat, en moet de activering gestart worden.

 cd muo
source bin/activate 

De virtuele omgeving voor Python is met succes opgezet en geïnitialiseerd, zoals blijkt uit de verandering in de systeemprompt die nu “muo-project” weergeeft, wat aangeeft dat de specifieke Python-instantie van de omgeving wordt gebruikt in plaats van de standaard systeeminstallatie. Aanpassingen die worden gemaakt binnen de virtuele omgeving of pakketten die daarin zijn geïnstalleerd, hebben dus geen invloed op de kerninstallatie van Python op het systeem.

/nl/images/create-python-virtual-environment.jpg

Houd er rekening mee dat in het geval van een herstart van het systeem, zoals een herstart van de Raspberry Pi, de Python runtime-omgeving opnieuw moet worden geactiveerd voor verder gebruik.

Om een virtuele Python-omgeving te maken die alle Python-pakketten weerspiegelt die momenteel op uw besturingssysteem zijn geïnstalleerd, voegt u gewoon de optie --system-site-packages toe aan het betreffende commando. Je kunt bijvoorbeeld python -m venv --system-site-packages muo-project .

Python-pakketten installeren met Pip

Om de mogelijkheden van een virtuele Python-omgeving te gebruiken, kan pip gebruikt worden om de pakketten te installeren die nodig zijn voor het project.Ter illustratie: overweeg de installatie van de Stressberry tool voor systeemstresstests door het volgende commando uit te voeren:

 pip install stressberry 

De module wordt geïnstalleerd in uw aangewezen Python virtuele omgeving samen met de vereiste afhankelijkheden. Het is belangrijk op te merken dat de beschikbaarheid van de module beperkt is tot de bovengenoemde virtuele omgeving en daarbuiten niet verder reikt.

/nl/images/pip-install-package.jpg

Geen Python-pakketconflicten meer

Het gebruik van het pip-gereedschap voor het installeren van Python-pakketten op een Raspberry Pi met het OS Bookworm vereist extra procedures in vergelijking met traditionele systemen; deze aanpak biedt echter het voordeel dat deze pakketten worden beperkt tot geïsoleerde virtuele omgevingen, waardoor potentiële verstoringen of storingen van het hele systeem worden voorkomen.