Innehållsförteckning
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.