Wie kann ich Python 2.7 nach der Installation von Python 3.3 entfernen?

19

Ich habe Python 3.3 unter Ubuntu 12.10 erfolgreich installiert. Da ich nicht mehrere Versionen von Python benötige, möchte ich das vorhandene Python 2.7 entfernen. Wenn ich das versuche, benutze ich

sudo apt-get remove python2.7

Ubuntu warnt mich, dass es Unmengen systemabhängiger Komponenten gibt, die ebenfalls entfernt werden. Es sieht wirklich beängstigend aus.

Gibt es eine Möglichkeit, Python 2.7 zu entfernen, ohne die systemabhängigen Komponenten zu entfernen, oder kann ich diese Abhängigen anweisen, Python 3.3 zu verwenden?

Phoenix Bai
quelle
2
Ich würde es nicht empfehlen. Python-Versionen sind überhaupt nicht so kompatibel, so dass ältere Skripte Probleme haben können, wenn Sie nicht die richtige Version haben.
1.
Sie haben recht, Python3.3 hat erklärt, dass es mit Python 2.7 nicht kompatibel ist. Also behalte ich es besser. Danke für den Hinweis!
Phoenix Bai

Antworten:

23

Das kannst du nicht.

Aus dem Ubuntu-Wiki / Python :

Längerfristige Pläne (zB 14.04)

Verschieben Sie Python 2 in das Universum, und portieren Sie alle Python-Anwendungen in main auf Python 3. Wir werden Python 2.7 nie ganz los, aber da es auch nie Python 2.8 geben wird, wird Python 2.7 zum Zeitpunkt von fast 4 Jahre alt sein In der 14.04 LTS-Version ist es an der Zeit, Python 2 in das Universum zu verbannen.

Dies bedeutet, dass viele Basispakete von 2.7 abhängig sind und es noch viel Zeit in Anspruch nehmen wird, um die Dinge zu migrieren. Beachten Sie, dass Python 3 zahlreiche inkompatible Änderungen aufweist - es handelt sich nicht um ein reguläres Paket-Upgrade.

Wenn Sie Python 2.7 wirklich loswerden möchten, müssen Sie auf die Version 14.04 warten, es gibt jedoch keine Garantie.

gertvdijk
quelle
3
Es ist jetzt 16.04 Uhr.
Muru
Es ist jetzt 18.04 Uhr.
Francesco Pasa
Es ist
19.04 Uhr
5

Das kannst du nicht und das willst du auch nicht.

Python änderte sich drastisch zwischen 2.7 und 3.0 und brach die Abwärtskompatibilität. Python-Skripte, die für 2.7 geschrieben wurden und zur Unterstützung eines großen Teils der Systeminfrastruktur verwendet werden, funktionieren mit Python 3.x nicht unbedingt ordnungsgemäß. Diese Skripte müssen aktualisiert werden, damit sie mit der neuen Version funktionieren. Bis dahin müssen Sie Python 2.7 beibehalten.

Aus diesem Grund stellen Sie eine so große Anzahl von Abhängigkeiten zum alten Python fest - das System hängt davon ab. Außerdem schadet es nicht, wenn beide Versionen von Python auf demselben System installiert sind. Und Sie werden möglicherweise in Zukunft auf Anwendungen stoßen, die immer noch Python 2.7 verwenden. Daher ist es eine gute Idee, es zu behalten.

user173076
quelle
2

Kam 2019 hierher, weil ich standardmäßig in Python3 entwickelt habe und zu demselben Ergebnis wie OP kam, nachdem ich gesehen hatte, was nach dem Ausführen entfernt werden würde apt purge python

Da ich eigentlich nur mit Python3 telefonieren wollte python, rannte ich los

sudo rm /usr/bin/python
sudo ln -s /usr/bin/python3 /usr/bin/python

Auf diese Weise kann Python2.7, falls es noch benötigt wird, explizit mit aufgerufen werden, python2.7während der einfache Aufruf pythonaufgrund der symbolischen Verknüpfung standardmäßig Python3 verwendet.

Ich habe keine Bash-Level-Skripte, die python2.7 aufrufen, pythonso dass diese Änderung nicht störend wäre - während bei anderen Systemen die Skripte entsprechend angepasst werden müssten, wenn dies der Fall wäre.

Das Haupthindernis für eine Distribution, bei der der Python-Befehl von Python2 auf Python3 umgeschaltet wird, ist nicht ein Bruch innerhalb der Distribution, sondern ein Bruch von privaten Skripten von Drittanbietern, die von Sysadmins und anderen Benutzern entwickelt wurden.

- Der "Python" -Befehl auf Unix-ähnlichen Systemen

Diese Antwort ist keine direkte Antwort auf OP, aber als jemand, der eine ähnliche Frage hatte, war dies die Funktionalität, nach der ich gesucht hatte, als ich daran dachte, 2.7 zu entfernen. Anstatt zu löschen, müssen Sie nur die Prioritäten festlegen, die Sie verwenden möchten python.

Saniboy
quelle
1
Es scheint mir eine schlechte Idee zu sein. Alle alten Skripte, die für Python 2 erstellt wurden, werden aufgerufen /usr/bin/python, während fast alle Skripte , die für Python 3 erstellt wurden, über die Änderung informiert sind und python3derzeit aufgerufen werden. Letting pythonPunkt python2.7ist weniger wahrscheinlich , dass die Dinge zu brechen.
Vidarlo
Ich würde sagen, es hängt von der Umgebung ab, wie ich bereits sagte, ich mache keine Skripte, die Python2 erfordern, und arbeite in 3 - während eine solche Änderung auf einer unserer Stationen bei der Arbeit mit automatisierten Skripten sehr störend wäre .
Saniboy
Gibt es bestimmte Systemprozesse, die Sie in der Lage wären, diesen Aufruf / usr / bin / python aufzulisten? Ich bin immer
bereit,
Ich finde ziemlich viele in 18.04. grep -r "/usr/bin/python" /usr/bin/sollte Ihnen einen kurzen Überblick geben. Es wird wahrscheinlich Ihr System nicht deaktivieren, aber es kann dazu führen, dass einige Dinge nicht funktionieren. Zum Beispiel solaar.
Vidarlo
1
Auf dem System, das ich überprüft habe, gibt es 39, die nicht explizit auf python3 oder python2 verweisen. Alle diese sind wahrscheinlich python2. Das hängt natürlich davon ab, was Sie installiert haben, aber ich sehe auch keinen großen Grund, dies zu tun ...
vidarlo