Je tape python
dans une fenêtre de terminal. Je reçois Python 2.7 et non Python 3.5. Selon la documentation, Python 3.5 devrait être préchargé.
Je ne sais pas quels "docs" vous lisez ni ce qu'ils disent, mais le /usr/bin/python
est juste un lien symbolique vers la version par défaut de python, dans ce cas 2.7, qui résulte du simple fait de saisir python
sur le terminal. Ceci est le résultat de PEP 394 qui définit cela
- pour le moment, toutes les distributions doivent s'assurer que
python
fait référence à la même cible quepython2
.
type python
et file /usr/bin/python
le confirmeront.
La raison de cet arrangement autre que la convention est que le paquet source python-default par défaut dans Xenial est la version 2.7.11 , le lien symbolique python pointe donc sur cette version.
Pour utiliser python 3, vous devez être explicite et taper python3
dans la ligne de commande, ce qui est recommandé au cas où vous auriez besoin d'une version spécifique. Vous pouvez également le faire avec python 2, en tapant python2
. Ubuntu inclut les deux versions python 2 et 3 par défaut sur toutes les versions actuelles.
Il y a plans pour tout migrer vers python et le marquer comme valeur par défaut.
Pour obtenir le Python 3.5 REPL ou exécuter un script compatible, tapez python3
. Cela permet de maintenir la compatibilité avec tout l'héritage python 2.x (qui a toujours été et restera lié à python
name__).
Le tiret peut trouver python
si vous configurez un fichier .desktop
pour ce fichier (dans ~/.local/share/applications/
), pour ouvrir un terminal et démarrer le REPL par exemple. Il n'y a pas d'environnement d'interface graphique REPL par défaut pour Python, et les attentes normales en matière d'interface sont que l'utilisateur accède au terminal.
La conversation par défaut de python 3.5 étant la valeur par défaut, les responsables portent tous les scripts système de python 2.x à python 3.x, et non pas python 3 remplacerait python 2 dans tous les cas.
Vous supposez que le Python par défaut devrait être disponible sous le nom python
name__. Cette hypothèse est fausse.
Sur un système livré avec Python 3 "préchargé" et aucun Python 2, il n'y aura que python3
et pas python
name__.
Le code écrit pour Python 3 devrait toujours rechercher un interpréteur appelé python3
. Le code écrit pour Python _ 2 recherchera historiquement python
name__.
Il pourrait arriver un moment, peut-être dans quelques décennies, où presque personne ne se souviendra de Python 2, lorsque python
pourrait commencer à faire référence à python3
. Ce serait purement par commodité, et peut et ne doit pas être fait prématuré, voire pas du tout! Il n'y a pas de hâte, à cause de l'impact suivant:
Les "anciens systèmes" actuels ne connaîtront pas python2
, seulement python
name__, il est donc parfaitement logique de garder le code Python 2 à la recherche de python
name__. C'est la raison pour laquelle python
doit faire référence à Python 2 pour "tant que le code Python 2 existe".
Le nouveau code écrit pour Python 2, si cela a du sens, peut parfaitement rechercher python
name__. Il pourrait également rechercher python2
, s'il est conçu pour s'exécuter uniquement sur Python 3 systèmes bien conscients et bien entretenus (qui devrait offrir un tel lien).
L'avantage du code Python 2 utilisant python2
serait qu'il n'aurait pas besoin d'être modifié une fois que python
aurait commencé à faire référence à python3
, ce qui pourrait ne jamais arriver, ou une fois que python
avait disparu, ce qui pouvait ou non se produire. (Cela pourrait devenir réalité si le code Python 2 s'éteignait après que l'hypothétique Python 4 devienne populaire avec son interpréteur python4
. - Parce que le laisser pointer sur python3
ou python4
serait à la fois source de confusion. )
Python 3.x devrait fonctionner avec 16.04 - En fait, cela fonctionnera définitivement. Ubuntu 14.04 et Python 3.4.3 - Tout ce que vous avez à faire pour le tester est de taper python3
et il devrait vous indiquer la version que vous utilisez.