
Ich habe Python 3.7 installiert, bin mir jedoch nicht sicher, wie ich es zum Standard-Python mache.
Siehe unten:
~/Documents/robosuite$ python3.7
Python 3.7.1 (default, Oct 22 2018, 11:21:55)
[GCC 8.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
KeyboardInterrupt
>>>
~/Documents/robosuite$ python3
Python 3.6.7 (default, Oct 22 2018, 11:32:17)
[GCC 8.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
Ich möchte, dass Python3.7 angezeigt wird, wenn ich den Befehl verwendepython3
Antwort1
Die einfache Lösung besteht darin, .bashrc
diese Zeile zu bearbeiten und einzufügen:
alias python3=python3.7
Wann immer Sie schreiben, python3
wird es durch ersetzt python3.7
.
update-alternatives
Oder Sie können den bevorzugten Befehl verwenden , z. B.:
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 1
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.7 2
Hier python3.7
hat also die höhere Priorität python3.6
. Dann verwenden Sie:
sudo update-alternatives --config python3
Drücken Sie die Eingabetaste, wenn Sie zufrieden sind
Antwort2
Ich möchte näher darauf eingeheneine vorherige Antwortda die beiden angegebenen Ansätze nicht gleichwertig sind und einer von ihnen sogar das System beschädigen kann. Das Problem ist, dass es zwei verschiedene Dinge gibt, die man durch „Ändern der Standard-Python-Version“ erreichen könnte.
Kurze Zusammenfassung
Hinzufügen
alias python3=python3.7
Zu .bashrc
.
TunnichtÄndern Sie update-alternatives
Ihre Standard-Python-Version, da dies Systemanwendungen beschädigt.
Weitere Details
Bash-Alias
Der erste Grund ist, dass man für eine interaktive Shell einfach das gewünschte Python öffnen möchte, indem man schreibt
$ python
oder
$ python3
Dies wird durch Hinzufügen der Zeile erreicht
alias python3=python3.7
zu .bashrc
. Wenn Sie eine andere Shell verwenden, fügen Sie dies der entsprechenden Konfigurationsdatei hinzu. Dies hat auch den Vorteil, dass Sie, wenn es aus irgendeinem Grund Probleme verursacht, einfach die fehlerhafte Zeile entfernen .bashrc
und das Terminal neu starten können.
update-alternatives
Das zweite, was man mit "Ändern der Standard-Python-Version" meinen könnte, ist das Ändern der Standard-Python-Version füralleProgramme, einschließlich derjenigen, die nicht von einer interaktiven Shell aus gestartet werden. Dies ist das Ergebnis des Ausführens
$ sudo update-alternatives --config python3
Wenn Sie dies jedoch in einer Neuinstallation von Debian/Ubuntu ausführen, werden Sie feststellen, dass der Befehl zurückgibt
update-alternatives: error: no alternatives for python3
selbst wenn Sie mehrere Versionen von Python 3 über installiert haben apt
. Dafür gibt es einen sehr guten Grund.
Das Problem dabei ist, dass viele Systemanwendungen Python verwenden, und je nach genauer Verteilung verwenden viele Python 3. Wenn Sie python3
global ändern, welche Version vom Befehl aufgerufen wird, werden diese Anwendungen gezwungen, diese Version zu verwenden. Obwohl verschiedene Versionen von Python 3 weitgehend kompatibel sind, gibt es immer nochFunktionen, die zwischen Versionen verschoben und entfernt wurden. Wenn eine Systemanwendung diese Funktionen verwendet, python3
führt der Wechsel zum Starten einer neueren Version zum Absturz der Anwendung.
Testen
Ich habe eine Neuinstallation von Ubuntu 18.04 in einer VM erstellt. Das Hinzufügen des Bash-Alias verursachte keine unmittelbaren Probleme.
Die Verwendung dieser update-alternatives
Methode verursachte Probleme mit apt
. Insbesondere bekam ich
ModuleNotFoundError: No module named 'apt_pkg'
Reparieren Ihres Systems, wenn Sie die update-alternatives
Methode ausgeführt haben
Wenn wir ausgeführt haben update-alternatives
und es kaputt ging apt
, können wir das System immer noch reparieren. Während meiner Tests konnte das Terminal immer noch geöffnet werden. Man kann zum Standard-Python zurückkehren, indem man ausführt
$ sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.X 1000
wobei 3.X die ursprüngliche Python 3-Version Ihres Systems ist und 1000 nur eine hohe Priorität ist, um sicherzustellen, dass sie ganz oben steht. Dann kann man ausführen
$ sudo update-alternatives --config python3
und stellen Sie sicher, dass das ursprüngliche System Python ausgewählt ist. Starten Sie das System neu und es wird wieder normal funktionieren.
Antwort3
$ sudo su
$ update-alternatives --install /usr/bin/python python /usr/bin/python3 1
... wenn bereits python3.7
installiert ist
Antwort4
Für Maschinen, die den Befehl update-alternatives nicht haben, kann man eine schnelle Lösung wie folgt durchführen:
sudo ln -sf `which python3.7` `which python3`
Normalerweise (zumindest in allen Fällen, die ich gesehen habe) sind python3/python2/python nur Symlinks zu der Python-Ausführbaren Datei einer bestimmten Version. Das Ändern dieses Symlinks sollte das „Standard-Python“ ändern.