Innholdsfortegnelse
Viktige takeaways
- Raspberry Pi OS Bookworm krever installasjon av Python-pakker i et virtuelt miljø for å forhindre konflikter med systemversjonen av Python.
- Du kan bruke apt-pakkebehandlingen til å søke etter og installere Python-pakker, men hvis pakken ikke er tilgjengelig eller du trenger en nyere versjon, må du bruke pip-verktøyet i et virtuelt miljø.
- Eventuelle endringer eller installasjoner i det virtuelle miljøet vil ikke påvirke systemversjonen av Python.
Har du problemer med å installere Python-pakker ved å bruke «pip»-verktøyet i Raspberry Pi OS Bookworm? Det er noen ekstra trinn du må ta, som involverer opprettelsen av et virtuelt Python-miljø. Slik gjør du det.
Hva har endret seg i Raspberry Pi OS Bookworm?
Siden Raspberry Pi 5 er inkompatibel med tidligere versjoner av Raspberry Pi OS, må du installere den nye «Bookworm»-versjonen på den. Dette er en av tingene du bør vurdere når du bytter til Raspberry Pi 5 fra en tidligere modell.
I tidligere versjoner av det Debian-baserte Raspberry Pi OS-operativsystemet (Buster og tidligere), var det mulig å installere Python-biblioteker direkte, over hele systemet, ved å bruke pip-pakkeadministrasjonsverktøyet. Dette er imidlertid ikke lenger tilfelle i den nye Raspberry Pi OS Bookworm.
Som Raspberry Pi-dokumentasjon forklarer, var problemet at bruk av et Python-spesifikt verktøy som pip kunne forårsake konflikter med apt OS-pakkebehandleren.
Derfor, fra Bookworm og utover, når du bruker pip, må pakker installeres i et sandkassebasert Python-virtuelt miljø, som sikrer at de ikke kan forstyrre systemversjonen av Python.
Hvis du prøver å bruke kommandoen pip install [package name] hvor som helst ellers i systemet, vil du motta en feilmelding som starter med denne teksten:
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.
Slik søker du etter Python-pakker med Apt
Det første du må sjekke er om Python-pakken du trenger er tilgjengelig for installasjon ved å bruke den systemomfattende apt-pakkebehandlingen. Du kan søke etter pakker i det offisielle depotet ved å bruke apt search-kommandoen. For eksempel:
apt search numpy
Legg merke til pakkenavnet, i dette tilfellet python3-numpy (for Python versjon 3), og installer det deretter med apt (prefikset med sudo for de nødvendige superbrukerrettighetene for installasjon):
sudo apt install python3-numpy
Hvis Python-pakken du trenger ikke er tilgjengelig ved å bruke apt-pakkebehandlingen, eller du trenger en nyere versjon av den, må du bruke det Python-spesifikke pip-verktøyet for å installere det – i et virtuelt Python-miljø.
Hvordan lage et virtuelt Python-miljø
For å installere en Python-pakke med pip-verktøyet i Raspberry Pi OS Bookworm, må du først lage et virtuelt Python-miljø ved å bruke venv. Vi kalte vårt «muo-prosjekt», men du kan bruke hvilket navn du vil:
python -m venv muo-project
Det vil ta litt tid å fullføre, avhengig av hvilken Raspberry Pi-modell du bruker. Du må da endre katalog til den nyopprettede miljømappen, som inneholder en full Python-distribusjon, og aktivere den:
cd muo
source bin/activate
Det virtuelle Python-miljøet er nå klart til bruk, og systemforespørselen vil bli satt foran med navnet – i dette tilfellet, muo-project. Dette viser at du ikke lenger bruker systemversjonen av Python, men den som er inne i ditt virtuelle miljø. Så eventuelle endringer du gjør i den, eller moduler du installerer, vil ikke påvirke systemet Python.
Merk at hvis du starter Raspberry Pi på nytt, må du aktivere Python-miljøet på nytt for å bruke det igjen.
Hvis du vil lage et virtuelt Python-miljø med en kopi av alle Python-modulene som for øyeblikket er installert på operativsystemnivå, kan du gjøre det ved å legge til –system-site-packages-flagget i kommandoen. Eks: python -m venv –system-site-packages muo-project.
Installer Python-pakker med Pip
Fra det aktive Python virtuelle miljøet kan du nå installere alle pakker du trenger ved å bruke pip-kommandoen. For eksempel, for å installere Stressberry-systemets stresstestverktøy:
pip install stressberry
Den vil deretter installere modulen, sammen med eventuelle avhengigheter den krever, i ditt virtuelle Python-miljø. Merk at modulen kun vil være tilgjengelig deri og ikke for hele systemet.
Ingen flere Python-pakkekonflikter
Mens installasjonen av Python-pakker i Raspberry Pi OS Bookworm ved hjelp av pip-verktøyet krever ekstra trinn, er fordelen at de først da lever i det virtuelle miljøet og derfor ikke kan forstyrre, eller bryte, systemet.