Hur man installerar Python-paket i Raspberry Pi OS Bookworm

By rik

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.