Python 3.8.4 (3.9) und Pip auf dem Raspberry Pi installieren

Inhalt
Möchtest du eine neuere Version von Python installieren, als die Version von Raspbian OS? Dann folge dieser Anleitung.

Python 3 kompilieren und installieren

Möchtest du Python 3.9 anstatt 3.8.4 installieren, dann musst du in allen Schritten Python-3.8.4 mit Python-3.9.0b4 ersetzen. Eine Liste der aktuellen Versionen findest du auf der offiziellen Python Seite.
  1. Paket Liste neu laden und Pakete aktualisieren
    sudo apt update && sudo apt upgrade
  2. Benötigte Pakete installieren
    sudo apt install libffi-dev libbz2-dev liblzma-dev libsqlite3-dev libncurses5-dev libgdbm-dev zlib1g-dev libreadline-dev libssl-dev tk-dev build-essential libncursesw5-dev libc6-dev openssl git
  3. Aktuelle Python Version herunter laden
    wget https://www.python.org/ftp/python/3.8.4/Python-3.8.4.tar.xz
  4. Entpacke die heruntergeladene Datei
    tar xf Python-3.8.4.tar.xz
  5. Navigiere in den entpackten Ordner
    cd Python-3.8.4
  6. Konfiguration vorbereiten (ca. 12min RPI B+)
    ./configure
  7. Installations Datei erstellen (ca. 2-3Std RPI B+)
    make -j -l 4
    Mit dem Parameter -j und -l legst du fest wieviel Aufgaben gleichzeitig ausgeführt werden. Damit überforderst du Pi nicht und entstehen keine Fehler
  8. Python installieren (ca. 15min RPI B+)
    sudo make altinstall
  9. Um nicht immer python3.8 eingeben zu müßen, kannst du einen Alias hinzufügen. Damit kannst du python3 eingeben und das System benutzt python3.8
    echo "alias python3=python3.8" >> ~/.bashrc

    Möchtest du Python3 als Standard Version verwenden kannst du folgenden Alias erstellen.
    echo "alias python=python3.8" >> ~/.bashrc

    Oder diesen Alias für Python 3.9
    echo "alias python3=python3.9" >> ~/.bashrc
  10. Du kannst Pip mit pip3.8 aufrufen. Durch den folgenden Befehl kannst du Pip mit pip3 aufrufen.
    echo "alias pip3=pip3.8" >> ~/.bashrc
  11. Lade die neuen Einstellung, damit sie wirksam werden.
    source ~/.bashrc

Python und Pip Version prüfen

Python ist installiert und du kannst die aktuelle Version mit folgendem Befehl prüfen.
python3 -V
pip3 -V

Alternative: Pip3 installieren

Falls Pip nicht mit Python installiert wurde, kannst du Pip mit folgenden Schritten installieren. Mit pip lassen sich Python Module einfach installieren und entfernen.
  1. Lade das pip Installations-Script
    wget https://bootstrap.pypa.io/get-pip.py

Pip SSL Fehler

Warum ich Python auf dem Raspberry Pi kompiliere, bzw eine neuere Version von Python und Pip installieren will?

Wenn ich Pip normal über apt oder apt-get installiere (sudo apt install python3-pip) und ein Modul installieren möchte, erhalte ich folgenden Fehler. Leider behebt die neuere Version bzw. die kompilierte Version nicht das Problem. Falls du eine Lösung hast, schreib sie bitte in die Kommentare.

pi@raspberrypi:~ $ pip3 install pySerial
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Collecting pySerial
  Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate is not yet valid (_ssl.c:1056)'))': /simple/pyserial/
  Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate is not yet valid (_ssl.c:1056)'))': /simple/pyserial/
  Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate is not yet valid (_ssl.c:1056)'))': /simple/pyserial/
  Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate is not yet valid (_ssl.c:1056)'))': /simple/pyserial/
  Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate is not yet valid (_ssl.c:1056)'))': /simple/pyserial/
  Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate is not yet valid (_ssl.c:1056)'))': /packages/0d/e4/2a744dd9e3be04a0c0907414e2a01a7c88bb3915cbe3c8cc06e209f59c30/pyserial-3.4-py2.py3-none-any.whl
  Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate is not yet valid (_ssl.c:1056)'))': /packages/0d/e4/2a744dd9e3be04a0c0907414e2a01a7c88bb3915cbe3c8cc06e209f59c30/pyserial-3.4-py2.py3-none-any.whl
  Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate is not yet valid (_ssl.c:1056)'))': /packages/0d/e4/2a744dd9e3be04a0c0907414e2a01a7c88bb3915cbe3c8cc06e209f59c30/pyserial-3.4-py2.py3-none-any.whl
  Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate is not yet valid (_ssl.c:1056)'))': /packages/0d/e4/2a744dd9e3be04a0c0907414e2a01a7c88bb3915cbe3c8cc06e209f59c30/pyserial-3.4-py2.py3-none-any.whl
  Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate is not yet valid (_ssl.c:1056)'))': /packages/0d/e4/2a744dd9e3be04a0c0907414e2a01a7c88bb3915cbe3c8cc06e209f59c30/pyserial-3.4-py2.py3-none-any.whl
Could not install packages due to an EnvironmentError: HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Max retries exceeded with url: /packages/0d/e4/2a744dd9e3be04a0c0907414e2a01a7c88bb3915cbe3c8cc06e209f59c30/pyserial-3.4-py2.py3-none-any.whl (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate is not yet valid (_ssl.c:1056)')))

Du kannst den Fehler mit dem --trusted-host Parameter umgehen.

pip3 install pySerial --trusted-host=pypi.python.org --trusted-host=pypi.org --trusted-host=files.pythonhosted.org
Das ist aber keine dauerhafte Lösung und nicht sicher.

Lösung für Fehlermeldung "make: Warning: File 'Makefile.pre.in' has modification time"

Wenn ich den Befehl ./configure in Schritte 6 ausgeführt habe, wurde mir folgende Fehlermeldung angezeigt.

make: Warning: File 'Makefile.pre.in' has modification time 4061284 s in the future
/bin/sh ./configure
Dieser Befehl hat noch "funktioniert", aber der nächste Befehlt make -j -l 4 lief dann in einer Endlosschleife und wurde nicht beendet. Mit diesen Schritten habe ich das Problem lösen können
  1. find /your/dir -type f -exec touch {} +
  2. make clean && make
  3. sudo make altinstall
Folge jetzt ab Schritt 9 weiter der Anleitung. Die Lösung habe ich von hier.  

Gib deine Stimme ab!

119 Likes
Upvote Downvote

Total votes: 112

Upvotes: 112

Upvotes percentage: 100.000000%

Downvotes: 0

Downvotes percentage: 0.000000%

Geschrieben von Ben

#Blogger #Designer #RaspeberryFan #Self-Employed #Developer #Javascript
TwitterGithubThingiverse

3 Kommentare

Kommentar verfassen
  1. Hi, die Installation hat auf Raspi 4 mit 1GB RAM (RaspiOS Buster boot von USB Stick) geklappt, sie wurde über SSH gemacht.
    Ich bekomme die richtigen Versionsnummern angezeigt (python3 -V und pip3 -V).
    Jetzt begebe ich mich auf den Desktop und möchte mit “Thonny Python IDE” das Programmieren beginnen ….
    …. und bekomme in dem Statusfenster noch Python 3.7.3 (/usr/bin/python3) gemeldet.
    Was ist schief gegangen?

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.