Zum Inhalt springen

Python 3 als Standard auf Debian 9 einstellen

Last updated on 19. Juni 2019

Vorwort

Ich verwende hier ein Debian 9, welches auf Basis von VirtualBox 6.08 virtualisiert wurde. Auf dem Debian ist nur der SSH-Server und die Build Essential installiert, ansonsten ist das System blank. Es kann aber wie immer auf unterschiedlichen Systemen zu kleinen Unterschieden in der Konfiguration kommen. Zum Beispiel könnte bei dir schon Python 3.6 installiert sein und nicht wie in meinem Fall Python 3.5. Gibt dann kleinere Unterschiede, die man im Pfad beachten muss.

Schritt 1: Bring’s auf den aktuellen Stand

Grundsätzlich sollte das System vor jeder Installation auf den aktuellsten Stand gebracht werden, damit eventuelle Inkompatibilitäten zu vermeiden. Das System wird einfach wie jede Debian-basierte Distribution mit zwei Befehlen an den Paketmanager aktualisiert.

apt-get update
apt-get upgrade -y

Mit dem ersten Befehl wird Debians Paketspeicher aktualisiert und die Distribution erkennt eventuell zu updatende Pakete. Der zweite Befehl aktualisiert dann das System und überspringt dank des Parameters “y” die Abfrage nach einer Bestätigung.

Schritt 2: Python 3 installieren

Jetzt widmen wir uns erst einmal dem, weswegen wir diesen Aufwand überhaupt betreiben. Wir werden gleich insgesamt vier Pakete und ihre Abhängigkeiten installieren. Wir installieren die beiden Metapakete python und python-pip, sowie die Pakete python3 und python3-pip. Das Metapaket python sollte schon auf dem System standardmäßig installiert sein. Aber man weiß ja nie.

apt install -y python python-pip python3 python3-pip

Schritt 3: Python 3 als Standard setzen

In diesem Schritt beschäftigen wir uns etwas näher mit dem Befehl “update-alternatives”. Befehle unter Linux sind meist so strukturiert, dass z. B. python gar nicht direkt auf die Anwendung zeigt, die ausgeführt wird. Sondern auf einen Symlink, einem symbolischen Link. Heißt, python zeigt dann z. B. einfach auf /usr/bin/python2.7, was sich mit dem “update-alternatives”-Befehl anpassen lässt. Zu der Bedienung folgt eine Reihe von kleineren Konsolenbefehlen.

update-alternatives --install /usr/bin/python python /usr/bin/python3.5 1
update-alternatives --install /usr/bin/python python /usr/bin/python2.7 2
update-alternatives --config python

Wir definieren hier einfach zwei Alternativen für den Befehl “python”, der als Symlink im Verzeichnis /usr/bin/python liegt. Mit “update-alternatives –config python” bekommt man dann eine Liste an Alternativen vorgeschlagen. Wir wählen einfach mit 2 und Enter Python 3.5 aus. Es kann aber eventuell schon sein, dass die 0, also die Autoauswahl bereits Python 3.5 ist. Dann kann man einfach mit einem Enter den Befehl wieder verlassen. Was derzeit aktiv ausgewählt ist, erkennt man an dem Stern vor der ersten Zahl.

Das war es dann übrigens schon. Ein “python –version” sollte dann in etwa “Python 3.5.3” ausgeben. Heißt dann, dass es funktioniert hat. 🙂

Zusatz: Fix für Certbot

Mir ist aufgefallen, dass es unter Debian sowohl unter Python 2.7 als auch unter Python 3.5 zu einen Problem mit der Pip-Paket von Certbot kommt. Es liegt wohl daran, dass Debian Python 2 und auch Python 3 wohl standardmäßig mit einer veralteten Version des cryptography-Paketes, dass im Zusammenhang mit pyOpenSSL ausliefert. Nämlich mit der Version 1.7, obwohl Certbot mindestens die Version 2.3 benötigt. Beheben lässt sich das sowohl unter Python 2 wie auch unter Python 3 ganz einfach mit zwei Befehlen. Wir reinstallieren einfach das oben bereits genannte pyOpenSSL. Danach funktioniert Certbot einwandfrei.

pip uninstall pyOpenSSL
pip install pyOpenSSL
Published inDebianPythonTutorials

Hinterlasse einen Kommentar

avatar
  Abonnieren  
Benachrichtige mich bei