Kurze Zusammenfassung

Kurze Zusammenfassung

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, .bashrcdiese Zeile zu bearbeiten und einzufügen:

alias python3=python3.7

Wann immer Sie schreiben, python3wird es durch ersetzt python3.7.

update-alternativesOder 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.7hat 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-alternativesIhre 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 .bashrcund 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 python3global ä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, python3fü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-alternativesMethode verursachte Probleme mit apt. Insbesondere bekam ich

ModuleNotFoundError: No module named 'apt_pkg'

Reparieren Ihres Systems, wenn Sie die update-alternativesMethode ausgeführt haben

Wenn wir ausgeführt haben update-alternativesund 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.7installiert 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.

verwandte Informationen