Hur man installerar Python-paket i Raspberry Pi OS Bookworm

Viktiga takeaways

  • Raspberry Pi OS Bookworm kräver installation av Python-paket i en virtuell miljö för att förhindra konflikter med systemversionen av Python.
  • Du kan använda apt package manager för att söka efter och installera Python-paket, men om paketet inte är tillgängligt eller om du behöver en nyare version, måste du använda pip-verktyget i en virtuell miljö.
  • Eventuella ändringar eller installationer som görs inom den virtuella miljön kommer inte att påverka systemversionen av Python.

Har du problem med att installera Python-paket med ”pip”-verktyget i Raspberry Pi OS Bookworm? Det finns några extra steg du måste ta, som involverar skapandet av en virtuell Python-miljö. Så här gör du.

Vad har förändrats i Raspberry Pi OS Bookworm?

Eftersom Raspberry Pi 5 är inkompatibel med tidigare versioner av Raspberry Pi OS, måste du installera den nya ”Bookworm”-versionen på den. Detta är en av sakerna att tänka på när du byter till Raspberry Pi 5 från en tidigare modell.

I tidigare versioner av det Debian-baserade operativsystemet Raspberry Pi OS (Buster och tidigare) var det möjligt att installera Python-bibliotek direkt, i hela systemet, med hjälp av pakethanteringsverktyget pip. Detta är dock inte längre fallet i den nya Raspberry Pi OS Bookworm.

Som den Raspberry Pi dokumentation förklarar, problemet var att användning av ett Python-specifikt verktyg som pip kunde orsaka konflikter med apt OS-pakethanteraren.

Därför, från Bookworm och framåt, när du använder pip, måste paket installeras i en virtuell Python-miljö med sandlådor, vilket säkerställer att de inte kan störa systemversionen av Python.

Om du försöker använda kommandot pip install [package name] någon annanstans i systemet kommer du att få ett felmeddelande som börjar med denna text:

 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 ska kontrollera är om Python-paketet du behöver är tillgängligt att installera med den systemomfattande apt-pakethanteraren. Du kan söka efter paket i det officiella arkivet med hjälp av 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 (prefixet med sudo för de nödvändiga superanvändarbehörigheterna för installation):

 sudo apt install python3-numpy 

Om Python-paketet du behöver inte är tillgängligt med apt-pakethanteraren, eller om du behöver en nyare version av det, måste du använda det Python-specifika pip-verktyget 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-verktyget i Raspberry Pi OS Bookworm måste du först skapa en virtuell Python-miljö med venv. Vi kallade vårt ”muo-projekt”, men du kan använda vilket namn du vill:

 python -m venv muo-project 

Det kommer att ta ett tag att slutföra, beroende på vilken Raspberry Pi-modell du använder. Du måste sedan byta katalog till den nyskapade miljömappen, som innehåller en fullständig Python-distribution, och aktivera den:

 cd muo
source bin/activate

Den virtuella Python-miljön är nu redo att användas, och systemprompten kommer att föregås av dess namn – i det här fallet muo-project. Detta visar att du inte längre använder systemversionen av Python, utan den i din virtuella miljö. Så alla ändringar du gör i den, eller moduler du installerar, kommer inte att påverka systemet Python.

Observera att om du startar om Raspberry Pi, måste du återaktivera Python-miljön för att använda den igen.

Om du vill skapa en virtuell Python-miljö med en kopia av alla Python-moduler som för närvarande är installerade på operativsystemnivå, kan du göra det genom att lägga till flaggan –system-site-packages i kommandot. T.ex.: 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 Stressberry-systemets stresstestverktyg:

 pip install stressberry 

Den kommer sedan att installera modulen, tillsammans med eventuella beroenden den kräver, i din virtuella Python-miljö. Observera att modulen endast kommer att vara tillgänglig där och inte i hela systemet.

Inga fler Python-paketkonflikter

Även om installationen av Python-paket i Raspberry Pi OS Bookworm med hjälp av pip-verktyget kräver extra steg, är fördelen att de först då lever i den virtuella miljön och därför inte kan störa, eller bryta, systemet.