Secondo la documentazione ufficiale di Python, il supporto per Python2.7 terminerà in un prossimo futuro.
DEPRECAZIONE:Python 2.7 raggiungerà la fine del suo ciclo di vita il 1° gennaio 2020. Aggiorna il tuo Python poiché Python 2.7 non verrà mantenuto dopo quella data. Una versione futura di pip abbandonerà il supporto per Python 2.7. Maggiori dettagli sul supporto di Python 2 in pip sono disponibili su https://pip.pypa.io/en/latest/development/release-process/#python-2-support
Perché Ubuntu non utilizza Python3 come predefinito nella loro prossima versione?
$ 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.
Migliore risposta
Secondo le note di rilascio di Bionic Beaver:
Python 2 non è più installato per impostazione predefinita. Python 3 è stato aggiornato alla 3.6. Questa è l'ultima versione LTS a includere Python 2 in main.
E l'affermazione di cui sopra è vera. Python 2 non è installato per impostazione predefinita in 18.04 e versioni successive. Ubuntu ha già spostato quasi tutti i suoi progetti da Python 2 a Python 3. Ad esempio, secondo le note di rilascio di Disco Dingo:
Samba è stato aggiornato alla versione 4.10.x e uno dei grandi cambiamenti qui è python3 sostegno. In Disco, samba e le sue dipendenze sono tutte python3 solo ora, ad eccezione di tdb. tdb costruisce ancora un pacchetto python2, ovvero python-tdb, ma tutti gli altri, incluso samba stesso, sono solo python3.
Inoltre, anche prima del rilascio di Ubuntu 18.04, Ubuntu/Canonical ha iniziato a chiedere agli sviluppatori di passare a Python 3 perché la fine è vicina . Da Python - Wiki di Ubuntu:
Tutto lo sviluppo guidato da Ubuntu/Canonical dovrebbe avere come target Python 3 in questo momento e tutto il nuovo codice dovrebbe essere solo Python 3. Se non puoi farlo a causa del tuo stack di dipendenze, parliamo.
Sembra che sul tuo sistema Python 2 sia stato installato intenzionalmente o potrebbe essere una dipendenza di qualche altro pacchetto il cui sviluppatore non è passato a Python 3. Puoi controllare i pacchetti che hai installato che dipendono da Python 2 eseguendo
apt rdepends python --installed
Il motivo per cui Python 2 viene invocato quando python
è eseguito si trova in quello degli storici punto di PEP 394 — Il comando "python" su sistemi simili a Unix:
Il python
il comando dovrebbe sempre invocare Python 2 (per evitare errori difficili da diagnosticare quando il codice Python 2 viene eseguito su Python 3).
Nelle versioni più recenti come 20.04, Ubuntu fornisce due pacchetti:
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
Come suggerisce il nome, il precedente avrebbe creato python
per invocare python2
e in seguito invocherà python3
. Se non hai un'applicazione che dipenda da Python 2, puoi installare python-is-python3
per creare python
per invocare python3
. In alternativa, puoi anche modificare lo shebang dello script in /usr/bin/python3
per creare script per utilizzare direttamente python3
come interprete.