it-swarm.com.de

So ändern Sie python Standardversion von 2.7 auf 3.7 unter RHEL 7

So ändern Sie python Standardversion von 2.7 auf 3.7 unter RHEL 7.

Installiert python auf der virtuellen RHEL7-Maschine, indem Sie diesem folgen --- https://tecadmin.net/install-python-3-7-on-centos/

Wenn ich python version) überprüfe, wird immer noch die alte Version gedruckt.

5
itgeek

Wie andere oben in den Kommentaren gesagt haben, hängen RHEL 7 und seine Ableitungen von Python 2 auf einer sehr tiefen Ebene ab. Sie können Python 2 einfach nicht sicher durch ersetzen) 3.

Selbst wenn dies nicht der Fall wäre, basiert Ihre Frage auf einer falschen Prämisse: Das Ersetzen von Python 2 durch Python 3 ist eine gute Idee) place. Sie sollten immer Python 3 als python3 aufrufen, da dies Sie von diesem Problem isoliert. Skripte, die Python 2) annehmen, rufen es auf als python in Shebang-Zeilen und so, so gibt es tatsächlich keinen Konflikt zwischen den beiden, wenn Ihre binären Python -Pakete ordnungsgemäß erstellt wurden.

Dieses "Wenn" kann Sie beißen: Einige Packager haben Python 3 Pakete mit einem /usr/bin/python Oder ähnlichem erstellt, was zu einem Konflikt führt. Diese Pakete ignorieren die Standardempfehlungen, die dies zulassen beide müssen parallel installiert werden.

Was das tatsächliche Erhalten eines Python 3-Pakets für RHEL 7 betrifft, ist das wird in einer anderen Antwort zu Stack Overflow ausführlich behandelt .

6
Warren Young

Unter RHEL7 mit der offiziellen Standardinstallation (unter Verwendung von SCL-Repo) erfolgt der Wechsel in die Python3-Umgebung für die aktuelle Shell über den Befehl "scl enable" (Hinweis: In meinem Fall habe ich python 3.6):

scl enable rh-python36 "/bin/bash"

Ich habe herausgefunden, dass, wenn Sie einen Benutzer so einstellen möchten, dass seine Umgebung für Python3 hart konfiguriert ist, dies einfach tun (Hinweis: Ersetzen Sie "[some_user]" durch den Benutzernamen dieses Benutzers):

user=[some_user]; userhome=$(eval echo ~$user); echo ". /opt/rh/rh-python36/enable" >> ${userhome}/.bashrc

.bashrc wird sowohl für Login- als auch für Nicht-Login-Shells geladen. Dies sollte sowohl für Skripte gelten, die über die Befehlszeile ausgeführt werden, als auch für Skripte, die von einigen Cron-Jobs usw. ausgeführt werden. Es werden lediglich die erforderlichen Umgebungsvariablen festgelegt, die auf Python3 anstatt auf Python3 verweisen Die Systemvorgabe als primäre Speicherorte ist so einfach.

1
cepal67

Ich würde die alternatives Lösung empfehlen

Meine Befehle werden sein.

#!/bin/bash

alternatives --list | grep -i python
alternatives --install /usr/bin/python python /usr/bin/python2.7 1
alternatives --install /usr/bin/python python /usr/bin/python3.6 2
alternatives --install /usr/bin/python python /usr/local/bin/python3.7 3
alternatives --config python
0
Raj Chinna