Selon la notes de publication de Bionic Beaver :
Python 2 n'est plus installé par défaut. Python 3 a été mis à jour vers la version 3.6. Il s'agit de la dernière version LTS à inclure Python 2 dans la version principale.
Et l'affirmation ci-dessus est vraie. Python 2 n'est pas installé par défaut dans la version 18.04 et les versions ultérieures. Ubuntu a déjà transféré presque tous ses projets de Python 2 à Python 3. Par exemple, selon notes de publication de Disco Dingo :
Samba a été mis à jour vers la version 4.10.x, et l'un des principaux changements est le suivant python3 support. Dans Disco, samba et ses dépendances sont désormais toutes compatibles avec python3, à l'exception de tdb. tdb construit toujours un paquet python2, à savoir Python-tdb, mais tous les autres, y compris samba lui-même, sont compatibles avec python3.
De plus, avant même la sortie d'Ubuntu 18.04, Ubuntu/Canonical a commencé à demander aux développeurs de passer à Python 3 pour les raisons suivantes la fin est proche . A partir de Python - Ubuntu Wiki :
Tous les développements Ubuntu/Canonical devraient cibler Python 3 dès maintenant, et tout nouveau code devrait être exclusivement Python 3. Si vous ne pouvez pas le faire à cause de votre pile de dépendances, discutons-en.
Il semble que sur votre système, Python 2 ait été installé intentionnellement ou peut-être en tant que dépendance d'un autre paquetage dont le développeur n'est pas passé à Python 3. Vous pouvez vérifier les paquets que vous avez installés et qui dépendent de Python 2 en exécutant la commande suivante
apt rdepends python --installed
La raison pour laquelle Python 2 est invoqué lorsque python
est exécuté se trouve dans l'un des historique point de PEP 394 -- La commande "Python" sur les systèmes de type Unix :
En python
doit toujours invoquer la commande 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, comme la 20.04, Ubuntu fournit deux paquets :
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 plus tôt est le mieux. python
pour invoquer python2
et plus tard invoqueront python3
. Si vous n'avez pas d'application qui dépend de Python 2, vous pouvez installer python-is-python3
pour faire python
pour invoquer python3
. Vous pouvez également modifier le shebang du script en /usr/bin/python3
pour faire script afin d'utiliser directement python3
en tant qu'interprète.