Viktiga punkter
- Raspberry Pi OS Bookworm kräver att Python-paket installeras i en isolerad miljö (virtuell miljö) för att undvika konflikter med den systemomfattande Python-installationen.
- Du kan använda apt-pakethanteraren för att söka efter och installera Python-paket, men om önskat paket inte finns tillgängligt eller om en nyare version behövs, måste du använda pip i en virtuell miljö.
- Alla ändringar och installationer som görs i den virtuella miljön påverkar inte systemversionen av Python.
Har du stött på problem med att installera Python-paket med verktyget ”pip” i Raspberry Pi OS Bookworm? Det krävs några extra steg, som innebär att du skapar en egen virtuell Python-miljö. Nedan beskrivs hur du gör detta.
Vad har förändrats i Raspberry Pi OS Bookworm?
Eftersom Raspberry Pi 5 inte är kompatibel med tidigare utgåvor av Raspberry Pi OS, behöver du installera den nya ”Bookworm”-versionen på den. Detta är en av de aspekter du bör vara medveten om när du byter till Raspberry Pi 5 från en äldre modell.
I tidigare versioner av det Debian-baserade operativsystemet Raspberry Pi OS (Buster och äldre) var det möjligt att installera Python-bibliotek direkt i systemet med pakethanteraren pip. Detta är dock inte längre möjligt i nya Raspberry Pi OS Bookworm.
Som Raspberry Pi:s dokumentation beskriver, var problemet att användning av ett Python-specifikt verktyg som pip kunde leda till konflikter med apt, operativsystemets pakethanterare.
Därför, från och med Bookworm, när du använder pip, måste paket installeras i en virtuell Python-miljö, en sorts ”sandlåda”, som säkerställer att de inte stör systemets Python-installation.
Om du försöker använda kommandot pip install [paketnamn]
någon annanstans i systemet kommer du att få ett felmeddelande som börjar med den här texten:
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.
Hur man söker efter Python-paket med Apt
Det första du bör undersöka är om det Python-paket du behöver finns tillgängligt för installation med systemets pakethanterare apt. Du kan söka efter paket i det officiella arkivet med kommandot apt search
. Till exempel:
apt search numpy
Notera paketnamnet, i det här fallet python3-numpy
(för Python version 3), och installera det sedan med apt (lägg till sudo för de nödvändiga administratörsrättigheterna för installation):
sudo apt install python3-numpy
Om det Python-paket du behöver inte är tillgängligt via apt-pakethanteraren, eller om du behöver en nyare version, måste du använda det Python-specifika verktyget pip för att installera det – i en virtuell Python-miljö.
Hur man skapar en virtuell Python-miljö
För att installera ett Python-paket med pip i Raspberry Pi OS Bookworm, måste du först skapa en virtuell Python-miljö med venv. I exemplet nedan har miljön namnet ”muo-project”, men du kan välja vilket namn du vill:
python -m venv muo-project
Det kan ta en stund att genomföra, beroende på vilken Raspberry Pi-modell du använder. Du behöver sedan byta katalog till den nyskapade miljömappen, som innehåller en komplett Python-distribution, och aktivera den:
cd muo-project source bin/activate
Den virtuella Python-miljön är nu klar att användas, och systemprompten kommer att föregås av dess namn – i detta fall ”muo-project”. Detta indikerar att du inte längre använder systemversionen av Python, utan den som finns i din virtuella miljö. Således kommer alla ändringar du gör i den, eller de moduler du installerar, inte att påverka system-Python.
Observera att om du startar om din Raspberry Pi behöver du återaktivera Python-miljön för att kunna använda den.
Om du vill skapa en virtuell Python-miljö med en kopia av alla Python-moduler som är installerade på operativsystemnivå, kan du göra det genom att lägga till flaggan --system-site-packages
i kommandot. Exempel: python -m venv --system-site-packages muo-project
.
Installera Python-paket med Pip
Inifrån den aktiva virtuella Python-miljön kan du nu installera alla paket du behöver med pip-kommandot. Till exempel, för att installera stresstestverktyget Stressberry:
pip install stressberry
Detta kommer att installera modulen, tillsammans med eventuella beroenden, i din virtuella Python-miljö. Observera att modulen endast kommer att vara tillgänglig där, och inte i resten av systemet.
Inga fler Python-paketkonflikter
Även om installationen av Python-paket i Raspberry Pi OS Bookworm med pip kräver extra steg, är fördelen att de nu endast finns i den virtuella miljön och därmed inte kan störa eller skada systemet.