Selon la documentation officielle de Python, la prise en charge de Python2.7 se terminera bientôt.
ABANDON :Python 2.7 arrivera en fin de vie le 1er janvier 2020. Veuillez mettre à jour votre Python car Python 2.7 ne sera plus maintenu après cette date. Une future version de pip supprimera la prise en charge de Python 2.7. Plus de détails sur la prise en charge de Python 2 dans pip, peuvent être trouvés sur https://pip.pypa.io/en/latest/development/release-process/#python-2-support
Pourquoi Ubuntu n'utilise-t-il pas Python3 par défaut dans sa prochaine 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.
Meilleure réponse
Selon les notes de version de Bionic Beaver :
Python 2 n'est plus installé par défaut. Python 3 a été mis à jour vers 3.6. Il s'agit de la dernière version LTS à inclure Python 2 dans main.
Et la déclaration ci-dessus est vraie. Python 2 n'est pas installé par défaut dans 18.04 et les versions publiées par la suite. Ubuntu a déjà déplacé la quasi-totalité de ses projets de Python 2 vers Python 3. Par exemple, selon les notes de version de Disco Dingo :
Samba a été mis à jour vers la version 4.10.x, et l'un des grands changements ici est python3 Support. Dans Disco, samba et ses dépendances sont toutes en python3 uniquement maintenant, à l'exception de tdb. tdb construit toujours un package python2, à savoir python-tdb, mais tous les autres, y compris samba lui-même, sont uniquement python3.
De plus, même avant la sortie d'Ubuntu 18.04, Ubuntu/Canonical a commencé à demander aux développeurs de passer à Python 3 car la fin est proche . À partir de Python - Wiki Ubuntu :
Tous les développements pilotés par Ubuntu/Canonical devraient cibler Python 3 dès maintenant, et tout nouveau code devrait être Python 3 uniquement. Si vous ne pouvez pas le faire à cause de votre pile de dépendances, parlons-en.
Il semble que Python 2 ait été installé intentionnellement sur votre système ou qu'il dépende d'un autre package dont le développeur n'a pas migré vers Python 3. Vous pouvez vérifier les packages que vous avez installés et qui dépendent de Python 2 en exécutant
apt rdepends python --installed
La raison pour laquelle Python 2 est invoqué lorsque python
est exécuté réside dans l'un des historiques point de la PEP 394 — La commande "python" sur les systèmes de type Unix :
Le
python
la commande doit toujours invoquer Python 2 (pour éviter les erreurs difficiles à diagnostiquer lorsque le code Python 2 est exécuté sur Python 3).
Sur les versions plus récentes telles que 20.04, Ubuntu fournit deux packages :
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
Comme son nom l'indique, le précédent ferait python
pour invoquer python2
et plus tard invoquera python3
. Si vous n'avez pas d'application dépendante de Python 2, vous pouvez installer python-is-python3
faire du python
pour invoquer python3
. Alternativement, vous pouvez également modifier le shebang du script en /usr/bin/python3
créer un script pour utiliser directement python3
comme interprète.