Die Standard-Python-Version kann in Ubuntu nicht auf Python3 festgelegt werden


145

Ich habe versucht, die Standard-Python-Version auf python3in zu setzen Ubuntu 16.04. Standardmäßig ist es python2(2.7). Ich habe die folgenden Schritte ausgeführt:

update-alternatives --remove python /usr/bin/python2
update-alternatives --install /usr/bin/python python /usr/bin/python3

Für die zweite Anweisung wird jedoch der folgende Fehler angezeigt:

rejeesh@rejeesh-Vostro-1015:~$ update-alternatives --install /usr/bin/python python /usr/bin/python3
update-alternatives: --install needs <link> <name> <path> <priority>

Use 'update-alternatives --help' for program usage information.   

Ich bin neu in Ubuntu und weiß nicht, was ich falsch mache.


3
Wie in der Warnung angegeben, fehlt Ihnen die Priorität.
Greedy52

6
Achten Sie darauf, Python 2.7 nicht zu entfernen, da dies viele Funktionen Ihres Betriebssystems lahm legt (aus Erfahrung :()
Jacques de Hooge

Ich habe meine Antwort in Bezug auf Ihren Prioritätsfehler bearbeitet.
Steampunkery

1
Ein Wort der Warnung: Es klingt für mich nach einer schlechten Idee, pythonzu Python 3 zu wechseln . Die Standardmethode zum Aufrufen von in Python 2 geschriebenen Skripten ist python my-script-p2.py, solange es so ist python3 my-script-p3.py. Ich würde erwarten, dass sich viele Systemskripte darauf verlassen.
Jan Groth

1
Für diejenigen, die sich für das Thema interessieren, würde ich empfehlen, auf die virtuelle Umgebung zu achten: docs.python.org/3/tutorial/venv.html Mein Ubuntu 18 LTS verwendet immer noch Python 2.7 und ich verwende zum Beispiel das virtuelle Umgebung für die Verwendung von Python 3.X und auf dem neuesten Stand in meinen Django-Projekten.
Victor Björn

Antworten:


131

Öffnen Sie Ihre .bashrc-Datei nano ~/.bashrc. Geben Sie alias python=python3auf eine neue Zeile am Anfang der Datei speichern Sie die Datei mit Strg + o und schließen Sie die Datei mit Strg + x. Dann zurück zu Ihrem Befehlszeilentyp source ~/.bashrc. Jetzt sollte Ihr Alias ​​dauerhaft sein.

BEARBEITEN:

Bei Aktualisierungsalternativen ist die Priorität eine Ganzzahl. Die Priorität gibt an, welches Programm zuerst verwendet werden soll. Dieser Artikel fasst alles ziemlich gut zusammen.


56
Das ist die falsche Antwort. Das Bearbeiten Ihres bashrc funktioniert nicht wie Update-Alternativen. Beispielsweise verwenden Skripte, die mit beginnen #!/usr/bin/env python, die Version in bashrc nicht. Bitte benutzen Sie die Antwort von @ Pardhu.
Steinzeuglord

Ich habe diese Antwort vor langer Zeit geschrieben und bin mir bewusst, dass Update-Alternativen nicht mit dem Ändern von bashrc identisch sind. Ich kann die Antwort bearbeiten, wenn Sie möchten.
Steampunkery

1
Für Benutzer mit dieser Frage ist es eher eine Warnung, dass das Ändern des Alias ​​nicht dasselbe bewirkt. Bis zu Ihnen, wenn Sie bearbeiten möchten.
Steinzeuglord

Dies ist die einzige Antwort, die mir geholfen hat. Ich habe es versucht sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.5.2. But I got: update-alternatives: --install needs <link> <name> <path> <priority> Use 'update-alternatives --help' for program usage information.
Alexchenco

1
Ich habe das getan und es hat Dinge kaputt gemacht, wie virtuelle Umgebungen. Diese Antwort schafft mehr Probleme
Kuzeko

292

Die zweite Zeile kann in geändert werden

update-alternatives --install /usr/bin/python python /usr/bin/python3 10

Dies ergibt eine Priorität von 10 für den Pfad von python3. Der Nachteil beim Bearbeiten von .bashrcDateien besteht darin, dass sie bei Verwendung der Befehle mit nicht funktionieren sudo.

Update: Bitte verwenden Sie, sudowährend Sie den Befehl wie folgt ausführen :

sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 10


3
Guter und einfacher Ausweg.
PrakashG

7
Gut und auf den Punkt gebracht. "<Priorität>" in der Fehlermeldung schlug dies bereits vor. Übrigens wird normalerweise "sudo" benötigt, um diesen Installationsbefehl auszuführen.
ywu

4
Wie Sie sagten, musste ich "sudo update-alternatives --install / usr / bin / python python / usr / bin / python3 10"
Roy

3
Dies ist mit Sicherheit der richtige Weg, aber es ist erwähnenswert, dass das Ändern der systemweiten Standardeinstellung wahrscheinlich einige Probleme verursacht. Zum Beispiel musste ich einen Fix auf Terminator anwenden , der nur mit Python2 funktioniert.
Dale Anderson

1
Nicht vollständig arbeiten - nach diesem Befehl pythonläuft python3, aber python-configimmer noch läuft python2-configund allgemeine Bruch Ensues
Chris Dodd

35

So ändern Sie Python 3.6.8 als Standard in Ubuntu 18.04 in Python 3.7.

Installieren Sie Python 3.7

Schritte zum Installieren und Konfigurieren von Python3.7 als Standardinterpreter.

  1. Installieren Sie das python3.7-Paket mit apt-get

    sudo apt-get install python3.7

  2. Fügen Sie Python3.6 und Python 3.7 hinzu update-alternatives

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
  1. Aktualisieren Sie Python 3 so, dass es auf Python 3.7 verweist

    sudo update-alternatives --config python3 Geben Sie 2 für Python 3.7 ein

  2. Testen Sie die Version von Python

python3 --v
Python 3.7.1 

3
Möglicherweise möchten Sie eine Warnung einfügen, dass dadurch gepackte Software beschädigt werden kann. Python 3.6 ist die verteilte Standardeinstellung, und alle mitgelieferten Softwarepakete übernehmen ebenfalls diese Version.
Tim

Das hat mir geholfen. Vielen Dank.
Jeffrey Copps

Kann ich den Python durch Version 3.7 anstelle von Python3 ersetzen?
Wee Hong

@ Tim, was ist der beste Weg, um das zu erledigen?
Shreya

@Wee Hong, ja du kannst. Anstelle von $ sudo update-alternative --install / usr / bin / python3 python3 .... ersetzen Sie einfach $ sudo update-alternative --install / usr / bin / python python ..... und danach: sudo update -alternatives --config Python.
Arthur Zennig

23

Um zu python3 zu wechseln, können Sie den folgenden Befehl im Terminal verwenden alias python=python3.


4
Dies funktioniert jedoch nur für den aktuell ausgeführten Prozess im Terminal. Wenn ich das Terminal schließe und öffne, wechselt es wieder zu Python2.
RejeeshChandran

2
@ RejeeshChandran Schauen Sie sich Steampunkery Antwort
Seraf

14

Ein einfacher sicherer Weg wäre die Verwendung eines Alias. Fügen Sie dies in die Datei ~ / .bashrc ein: Wenn Sie den gedit-Editor verwenden

gedit ~ / .bashrc

Um in die bashrc-Datei und dann oben in der bashrc-Datei zu gelangen, nehmen Sie die folgende Änderung vor.

alias python = python3

Nach dem Hinzufügen der oben genannten in der Datei. Führen Sie den folgenden Befehl aus

source ~ / .bash_aliases oder source ~ / .bashrc

Beispiel:

$ python --version

Python 2.7.6

$ python3 --version

Python 3.4.3

$ alias python = python3

$ python --version

Python 3.4.3


9

Als zusätzliches Extra können Sie auch einen Alias ​​für pip hinzufügen (in .bashrc oder bash_aliases):

alias pip = 'pip3'

Viele finden, dass eine Neuinstallation von python3 tatsächlich auf python3.x verweist, sodass Sie möglicherweise Folgendes benötigen:

alias pip = 'pip3.6'
alias python = 'python3.6'


8

Installieren Sie zuerst Python3 und Pip3

sudo apt-get install python3 python3-pip

dann in Ihrem Terminal laufen

alias python=python3

Überprüfen Sie die Python-Version auf Ihrem Computer.

python --version

7

Wenn Sie Ubuntu Focal (20.20) haben, können Sie Folgendes installieren python-is-python3:

sudo apt-get install python-is-python3

um den Symlink zu ersetzen, um auf /usr/bin/pythonzu zeigen /usr/bin/python3.8.


5

Wie es sagt, update-alternatives --install <link> <name> <path> und <priority> Argumente.

Sie haben link ( /usr/bin/python), name ( python) und path ( /usr/bin/python3), Ihnen fehlt die Priorität.

update-alternatives --help sagt:

<Priorität> ist eine Ganzzahl; Optionen mit höheren Nummern haben im Automatikmodus eine höhere Priorität.

Also einfach ein 100oder etwas am Ende setzen


5

Machen

cd ~
gedit .bash_aliases

dann schreibe entweder

alias python=python3

oder

alias python='/usr/bin/python3'

Speichern Sie die Datei, schließen Sie das Terminal und öffnen Sie es erneut.
Du solltest jetzt in Ordnung sein! Verknüpfung


5

Befolgen Sie einfach diese Schritte, um das Standard-Python auf die neu aktualisierte Python-Version zu ändern. Hat gut für mich funktioniert.

  • sudo apt-install python3.7 Installieren Sie die neueste Version von Python, die Sie möchten
  • cd /usr/bin Geben Sie das Stammverzeichnis ein, in dem Python installiert ist
  • sudo unlink pythonoder sudo unlink python3. Heben Sie die Verknüpfung der aktuellen Standardpython auf
  • sudo ln -sv /usr/bin/python3.7 python Verknüpfen Sie die neu heruntergeladene Python-Version
  • python --version Überprüfen Sie die neue Python-Version und los geht's

3

Für einen anderen nicht-invasiven Ansatz nur für aktuelle Benutzer:

# First, make $HOME/bin, which will be automatically added to user's PATH
mkdir -p ~/bin
# make link actual python binaries
ln -s $(which python3) python
ln -s $(which pip3) pip

python pip wird in einer neuen Shell fertig sein.


2

Holen Sie sich Python-Pfad von

ls /usr/bin/python*

Stellen Sie dann Ihre Python-Version ein

alias python="/usr/bin/python3"

0

Der beste Weg in Ubuntu 18.04, der für alle Benutzer funktioniert, ist

sudo vim /etc/bash.bashrc
add lines
alias python=python3
alias pip=pip3

Speichern Sie die Änderungen und starten Sie neu.

Nach dem Neustart wird jede Version von Python 3, die Sie zusammen mit Python 2.7 im System haben, als Standard verwendet. Sie könnten genauer sein, indem Sie im Alias ​​Folgendes sagen, wenn Sie mehrere Versionen von Python 3 haben.

sudo vim /etc/bash.bashrc
add lines
alias python=python3.6
alias pip=pip3.6

0

Einfach entfernen python-is-python2:

sudo apt purge python-is-python2

Und installieren python-is-python3:

sudo apt install python-is-python3

Es wird den Übergangsprozess zu neuem Python3 automatisieren. Optional können Sie verbleibende Pakete später entfernen:

sudo apt autoremove && sudo apt autoclean

0

Um Python 3.6.8 als Standard in Ubuntu 18.04 von Python 2.7 zu ändern, können Sie das Befehlszeilentool ausprobieren update-alternatives.

sudo update-alternatives --config python

Wenn Sie die Fehlermeldung "Keine Alternativen für Python" erhalten, richten Sie selbst eine Alternative mit dem folgenden Befehl ein:

sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 2

Ändern Sie den Pfad /usr/bin/python3zu Ihrer gewünschten Python-Version entsprechend.

Das letzte Argument, das als Priorität angegeben wurde, bedeutet, dass die Alternative mit der höchsten Prioritätsnummer festgelegt wird, wenn keine manuelle Alternativauswahl getroffen wird. In unserem Fall haben wir eine Priorität 2 für festgelegt. /usr/bin/python3.6.8Infolgedessen /usr/bin/python3.6.8wurde die Version automatisch durch den Befehl update-alternatives als Standard-Python-Version festgelegt.

Wir können jederzeit zwischen den oben aufgeführten alternativen Python-Versionen wechseln, indem wir den folgenden Befehl verwenden und eine Auswahlnummer eingeben:

update-alternatives --config python

-1

Stellen Sie zunächst sicher, dass Python3 auf Ihrem Computer installiert ist

Gehen Sie zu Ihrem Terminal und geben Sie Folgendes ein:

cd ~/ um in Ihr Home-Verzeichnis zu gehen

Wenn Sie Ihr noch nicht eingerichtet haben, geben Sie .bash_profileein, touch .bash_profileum Ihr .bash_profile zu erstellen.

Oder geben Sie ein, open -e .bash_profileum die Datei zu bearbeiten.

Kopieren und speichern Sie alias python=python3im .bash_profile.

Schließen Sie Ihr Terminal und öffnen Sie es erneut. Geben Sie dann den folgenden Befehl ein, um zu überprüfen, ob Python3 jetzt Ihre Standardversion ist:

python --version

Sie sollten sehen, dass Python 3.xy Ihre Standardversion ist.

Prost!


Diese Methode wurde bereits in der bevorzugten Antwort auf diese Frage beschrieben. und deine Antwort trägt nichts bei.
Tripulse
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.