Raspberry Pi en Python zijn een twee-eenheid. Python is vooraf geïnstalleerd op het Raspberry Pi OS, maar zoals vaak met computers en programmeren, is de relatie niet altijd vanzelfsprekend, zeker als er meerdere versies op een Raspberry Pi geïnstalleerd zijn. In deze tutorial laat ik zien wat je moet weten over de Python-versies op je Raspberry Pi en hoe je de nieuwste versie als standaard (default) instelt.
De enige manier om de nieuwste Python-versie op Raspberry Pi OS te installeren, is door deze van de officiële website te downloaden en vanaf deze bronnen te installeren. De versies in de Raspberry Pi OS-repository’s (opslagplaats) zijn over het algemeen niet de allernieuwste.
Het nieuwste Raspberry Pi OS bevat alleen nog Python 3. Sinds 2020 is Python 2 End-Of-Life.
Op de oudere (legacy) versies van het Raspberry Pi OS staan twee Python versies, te weten Python 2 en Python 3. De oude versies worden aangeraden om ook projecten met Python 2 te kunnen doen. Om de exacte versienummers te vinden gebruik je de volgende opdrachtregels:
python --version
python3 --version
Het kan wat lastig zijn, maar ja, er zijn nu eenmaal twee versies op je Pi geïnstalleerd. Iets dat beginners moeten begrijpen, want de code is in de versies net even anders. Wanneer je het commando “python” gebruikt om een script uit te voeren, voer je het uit met Python 2. En het commando “python3” doet hetzelfde met Python 3.
De exacte versie hangt af van de nieuwste die beschikbaar is in de Raspberry Pi OS-repository. In de meeste gevallen zijn de versies van de op Debian gebaseerde distributie al iets gedateerd. Op het moment van schrijven is Python 3.7.3 twee jaar oud en is het vooraf geïnstalleerd in Raspberry Pi OS.
Als je wilt leren hoe je Python 3 op je Raspberry Pi kunt gebruiken, gebruik de opdracht “python3” in plaats van “python“. En als je een recentere versie wilt installeren, lees dan verder om erachter te komen hoe je dit kan doet.
Vind de nieuwste beschikbare Python-versie
De eenvoudigste manier om de nieuwste beschikbare Python-release te vinden, is door naar de officiële Python-website te gaan. Op de downloadpagina staan de nieuwste versies vermeld met hun releasedatum en onderhoudsstatus.
Deze tabel geeft je een overzicht van de nieuwste Pythons-versies. Zoals je kunt zien op de downloadpagina, is Python 3.7 uitgebracht in 2018. In het volgende gedeelte leer ik je hoe je Python kunt updaten.
Installeer de nieuwste Python-versie
Omdat Raspberry Pi OS altijd een paar Python-versies achterloopt, is het handmatig installeren van de broncode de enige manier om de nieuwste Python-versie op je Raspberry Pi te installeren.
Downloaden en uitpakken
– Ga naar de Python downloadpagina.
– Zoek op die pagina naar de tabel “Looking for a specific release?” (Op zoek naar een specifieke release?):
– Klik op de link “Download” die overeenkomt met de versie die je wilt installeren.
In mijn geval zal ik Python 3.10.3 installeren.
– Scroll vervolgens naar de onderkant van de volgende pagina en vind de lijst met downloadlinks:
– Klik met de rechtermuisknop op “Gzipped source tarball” en kies “Linkadres kopieren” in het contextmenu van de browser.
Voor het volgende open je de terminal op Raspberry Pi OS, of maak je een SSH-verbinding om de commando’s in te typen.
– Download het nieuwste Python-bestand met:
wget https://www.python.org/ftp/python/3.10.3/Python-3.10.3.tgz
Vervang de URL door de link die je in de vorige stap hebt geplakt, dit kan dezelfde zijn die er al staat.
– Pak de bestanden uit met:
tar -zxvf Python-3.10.3.tgz
Wijzig de Python-versie als je een andere hebt gedownload.
Configureer en installeer de nieuwste versie van Python
Nu moeten we de broncode compileren om deze Python-versie op je Raspberry Pi te installeren:
– Ga naar de map met de uitgepakte bestanden:
cd Python-3.10.3
– Voer de configuratieopdracht uit:
./configure --enable-optimizations
Aangezien Python al op de Raspberry Pi is geïnstalleerd, zou het direct moeten werken. Maar als je een fout hebt, moet je waarschijnlijk de ontbrekende componenten nog installeren of bijwerken.
– Als je klaar bent, voer je deze opdracht uit om het te installeren:
sudo make altinstall
Dit duurt een paar minuten, afhankelijk van je Raspberry Pi-model en -versie (5 tot 10 min op Raspberry Pi 4 en zo’n 19 minuten op een Raspberry Pi 3).
Maak van Python 3 de standaardversie
Elke geïnstalleerde versie van Python op het systeem voegt een nieuw uitvoerbaar bestand toe in /usr/local/bin dat je kan gebruiken om een programma uit te voeren. In mijn geval:
– python2.7 : De huidige (standaard) Python 2-versie.
– python3.7 : De huidige (standaard) Python 3-versie op Raspberry Pi OS op het moment van schrijven.
– python3.10 : De Pythonversie die ik vanaf de bron heb geïnstalleerd.
Maar als ik “python –version” gebruik, gebruik ik nog steeds Python 2.7.
Om de versie te kiezen die je standaard wilt gebruiken, zijn er twee keuzes:
Voer altijd een Python-script uit met de exacte versie die je wilt gebruiken, bijvoorbeeld:
python3.10 myscript.py wat waarschijnlijk de veiligste optie is als je regelmatig van de ene versie naar de andere overschakelt.
Je kan ook de link in de /usr/local/bin-map vervangen om naar de versie te verwijzen die je als standaard wilt gebruiken.
Hier ziet het eruit bij een nieuwe RPI OS-installatie:
Zo wijzig je deze link:
– Ga naar /usr/bin:
cd /usr/bin
– Verwijder de huidige link:
sudo rm python
– Koppel de versie die je in plaats daarvan wilt gebruiken:
sudo ln -s /usr/local/bin/python3.10 python
– Controleer of alles in orde is: Om te weten welke versie je zojuist hebt geïnstalleerd (3.10.3 in dit voorbeeld).
python --version
Opmerking: als je Thonny gebruikt om in Python te coderen, wordt standaard “/usr/bin/python3” gebruikt, dat linkt naar de nieuwste versie die is geïnstalleerd door Raspberry Pi OS (3.10.3 in dit voorbeeld). Als je de nieuwste Python-versie met Thonny wilt gebruiken, moet je deze link ook updaten.
Update Python op Raspberry Pi
We hebben gezien hoe een specifieke Python-versie op Raspberry Pi OS installeert wordt, maar hoe kan deze bijwerken worden?
Om Python op Raspberry Pi bij te werken, moet je ervoor zorgen dat het hele systeem up-to-date is. Dit doe je met de commando’s:
sudo apt update
sudo apt upgrade
Zelfs als het Raspberry Pi OS altijd een paar versies achterloopt op de nieuwste beschikbare Python-versie, kan je nog steeds updates krijgen met apt, net als voor elke andere software op je apparaat.
Als je klaar bent, controleer je de huidige versie met:
python --version
python3 --version
Als het niet de versie toont die u moet gebruiken, moet je deze tutorial opnieuw vanaf het begin volgen. Het downloaden van de bronnen en het compileren voor de gewenste versie is de enige oplossing elke keer dat je wilt updaten, er is geen opdracht om dit automatisch te doen.
Het is belangrijk om te weten welke versie je gebruikt als je extra bibliotheken voor Python op je Raspberry Pi installeert.
Tip
Zorg er ook voor dat je de modules installeert die betrekking hebben op de Python-versie die je gebruikt (python-gpiozero en python3-gpiozero zijn twee verschillende pakketten). PIP heeft ook twee versies (pip en pip3). Het kan misleidend zijn voor beginners, maar het is echt handig als je eraan gewend bent.
Have A Nice Day!
Ik heb je handleiding gevold. Domoticz blijft echter 3.7.3 gebruiken…
Ik heb 3.9.16 geinstalleerd en de opdrachten python –version en python3 –version geven beiden 3.9.16. Hoe kan ik zorgen dat Domoticz ook 3.9.16 gaat gebruiken?
Dag Bart,
Als je een legacy OS-versie gebruikt waarbij Python 2.x naast Python 3.x nog aanwezig is, zal standaard versie 2.0 gestart worden indien je een opdracht als python mijnscript.py invoert. De tutorial laat zien hoe je Python 3 als standaard versie kunt laten starten bij opdrachten waarbij geen versie meegegeven wordt.
Ik snap wat je wilt, maar het lijkt erop dat je de oplossing in Domoticz zou moeten zoeken. Heb je al geprobeerd Domoticz te upgraden? Ik heb met dit probleem geen ervaring gehad, maar zal eens kijken of ik wat kan vinden dat je kan helpen. Zodra ik wat gevonden heb laat ik het weten.
Ik heb een paar links gevonden met interessante info. Misschien helpt het bij het oplossen van je probleem:
– https://www.domoticz.com/wiki/Using_Python_plugins
– https://www.domoticz.com/forum/viewtopic.php?t=23829