Drei Schritte mit Python 3.5 von Software Collections :
sudo yum install centos-release-scl
sudo yum install rh-python35
scl enable rh-python35 bash
Beachten Sie, dass sudo für den letzten Befehl nicht benötigt wird. Jetzt können wir sehen, dass Python 3 die Standardeinstellung für die aktuelle Shell ist:
python --version
Python 3.5.1
Überspringen Sie einfach den letzten Befehl, wenn Sie Python 2 als Standard für die aktuelle Shell verwenden möchten.
Nehmen wir nun an, Ihre Python 3-Skripte geben Ihnen einen Fehler wie /usr/bin/env: python3: No such file or directory
. Das liegt daran, dass die Installation normalerweise auf einem ungewöhnlichen Pfad erfolgt:
/opt/rh/rh-python35/root/bin/python3
Das Obige wäre normalerweise ein Symlink. Wenn Sie beim Start python3
automatisch $PATH
für alle Benutzer hinzugefügt werden möchten , können Sie dazu eine Datei wie die folgende hinzufügen:
sudo vim /etc/profile.d/rh-python35.sh
Welches hätte so etwas wie:
#!/bin/bash
PATH=$PATH:/opt/rh/rh-python35/root/bin/
Und jetzt nach einem Neustart, wenn wir das tun
python3 --version
Es sollte einfach funktionieren. Eine Ausnahme wäre ein automatisch generierter Benutzer wie "jenkins" auf einem Jenkins-Server ohne Shell. In diesem Fall fügen Sie den Pfad manuell hinzu$PATH
Skripten eine Möglichkeit.
Wenn Sie sudo pip3
Pakete installieren, aber feststellen, dass pip3 nicht gefunden werden kann, haben Sie möglicherweise einen sicheren Pfad in / etc / sudoers . Die Überprüfung mit sudo visudo
sollte dies bestätigen. So verwenden Sie vorübergehend den Standardpfad, wenn Sie Befehle ausführen, können Sie beispielsweise Folgendes tun:
sudo env "PATH=$PATH" pip3 --version
Weitere Informationen finden Sie in dieser Frage.
HINWEIS : Es gibt ein neueres Python 3.6 von Software Collections, aber ich würde es derzeit nicht empfehlen, da ich große Probleme hatte, Pycurl zu installieren. Für Python 3.5 ist das kein Problem, da ich gerade das getan habe, sudo yum install sclo-python35-python-pycurl
was sofort funktioniert hat.