Laut offizieller Dokumentation von Python wird die Unterstützung von Python 2.7 in naher Zukunft enden.
VERALTUNG:Python 2.7 wird am 1. Januar 2020 das Ende seiner Lebensdauer erreichen. Bitte aktualisieren Sie Ihr Python, da Python 2.7 nach diesem Datum nicht mehr gewartet wird. Eine zukünftige Version von Pip wird die Unterstützung für Python 2.7 einstellen. Weitere Details zur Unterstützung von Python 2 in pip finden Sie unter https://pip.pypa.io/en/latest/development/release-process/#python-2-support
Warum verwendet Ubuntu Python3 nicht als Standard in der kommenden Version?
$ cat /etc/os-release
NAME="Ubuntu"
VERSION="19.04 (Disco Dingo)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 19.04"
VERSION_ID="19.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=disco
UBUNTU_CODENAME=disco
$ python
Python 2.7.16 (default, Apr 6 2019, 01:42:57)
[GCC 8.3.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
Beste Antwort
Laut den Release Notes von Bionic Beaver:
Python 2 wird standardmäßig nicht mehr installiert. Python 3 wurde auf 3.6 aktualisiert. Dies ist die letzte LTS-Version, die Python 2 in der Hauptversion enthält.
Und die obige Aussage ist wahr. Python 2 wird in Version 18.04 und danach veröffentlichten Versionen nicht standardmäßig installiert. Ubuntu hat bereits fast alle seine Projekte von Python 2 auf Python 3 verschoben. Zum Beispiel laut Release Notes von Disco Dingo:
Samba wurde auf Version 4.10.x aktualisiert, und eine der großen Änderungen hier ist python3 Unterstützung. In Disco sind Samba und seine Abhängigkeiten jetzt nur noch python3, mit Ausnahme von tdb. tdb baut immer noch ein python2-Paket, nämlich python-tdb, aber alle anderen, einschließlich Samba selbst, sind nur python3.
Darüber hinaus forderte Ubuntu/Canonical bereits vor der Veröffentlichung von Ubuntu 18.04 Entwickler auf, auf Python 3 umzusteigen, da das Ende nahe ist . Aus Python – Ubuntu-Wiki:
Die gesamte von Ubuntu/Canonical angetriebene Entwicklung sollte derzeit auf Python 3 abzielen, und der gesamte neue Code sollte nur für Python 3 verwendet werden. Wenn Sie dies aufgrund Ihres Abhängigkeitsstapels nicht tun können, lassen Sie uns reden.
Es scheint, dass auf Ihrem System Python 2 absichtlich installiert wurde oder als Abhängigkeit von einem anderen Paket vorliegt, dessen Entwickler nicht zu Python 3 gewechselt sind. Sie können die von Ihnen installierten Pakete überprüfen, die von Python 2 abhängig sind, indem Sie
apt rdepends python --installed
Der Grund, warum Python 2 aufgerufen wird, wenn python
ausgeführt wird, liegt in einem der historischen Punkt von PEP 394 – Der „python“-Befehl auf Unix-ähnlichen Systemen:
Die python
sollte immer Python 2 aufrufen (um schwer zu diagnostizierende Fehler zu vermeiden, wenn Python 2-Code auf Python 3 ausgeführt wird).
Bei neueren Versionen wie 20.04 stellt Ubuntu zwei Pakete bereit:
python-is-python2/focal,focal 2.7.17-4 all
symlinks /usr/bin/python to the DEPRECATED python2
python-is-python3/focal,focal 3.8.2-4 all
symlinks /usr/bin/python to python3
Wie der Name schon sagt, würde das frühere python
machen um python2
aufzurufen und später wird python3
aufgerufen . Wenn Sie keine Anwendung haben, die von Python 2 abhängig ist, können Sie python-is-python3
installieren um python
zu erstellen um python3
aufzurufen . Alternativ können Sie auch den Shebang des Skripts in /usr/bin/python3
bearbeiten um ein Skript zur direkten Verwendung von python3
zu erstellen als Dolmetscher.