Pourquoi python 3 n'est-il pas le binaire python par défaut?

40

Je tape python dans une fenêtre de terminal. Je reçois Python 2.7 et pas Python 3.5. Selon la documentation, Python 3.5 devrait être préchargé.

    
posée givonz 25.05.2016 - 03:01
la source

5 réponses

56

Je ne sais pas quels "documents" vous lisez ni ce qu'ils disent, mais le /usr/bin/python n'est qu'un lien symbolique vers la version par défaut de python, dans ce cas 2.7, qui résulte du simple fait de taper python sur le terminal. C’est le résultat de PEP 394 qui définit ce

  • for the time being, all distributions should ensure that python refers to the same target as python2.

type python et file /usr/bin/python le confirmeront.

La raison de cet arrangement autre que la convention est que le paquet source correspond à la version de python par défaut de Xenial. 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é si vous avez besoin d'une version spécifique. Vous pouvez également le faire avec python 2 en tapant python2 . Ubuntu inclut les versions 2 et 3 de Python par défaut sur toutes les versions actuelles.

Il existe des plans pour tout migrer vers Python 3 et le marquer comme paramètre par défaut.

    
réponse donnée Braiam 25.05.2016 - 04:03
la source
10

Pour obtenir le REPL Python 3.5 ou exécuter un script compatible, tapez python3 . Ceci afin de maintenir la compatibilité avec tous les anciens Python 2.x (qui ont toujours été et resteront liés à python ).

Le tiret peut trouver python si vous configurez un fichier .desktop pour celui-ci (dans ~/.local/share/applications/ ), pour ouvrir un terminal et démarrez le REPL par exemple. Il n’existe pas d’environnement REPL par interface graphique par défaut pour python, et les attentes normales en matière d’interface sont que l’utilisateur accède au terminal.

Par défaut, les responsables qui portent tous les scripts système de python 2.x à python 3.x portent tous les scripts système, mais pas que python 3 remplacerait python 2 dans tous les cas.

    

réponse donnée Andrew Keech 25.05.2016 - 03:16
la source
3

Python Les deux versions 2.x, 3.x sont disponibles. si vous appelez python comme il est pointé sur python 2.x, il chargera python 2.x

L'image ci-dessous vous aidera.

    
réponse donnée Ten-Coin 25.05.2016 - 03:18
la source
3

Vous supposez que le Python par défaut devrait être disponible sous la forme python . 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 aucun python .

Le code écrit pour Python 3 devrait toujours rechercher un interpréteur appelé python3 . Le code écrit pour Python 2 recherchera historiquement python .

À un moment donné, peut-être dans des décennies, presque personne ne se souviendra de Python 2, alors que python pourrait commencer à se référer à python3 . Ce serait purement par commodité, et peut et ne doit pas être fait prématuré, voire pas du tout! Rien ne presse en raison de l’impact suivant:

Les anciens systèmes actuels n'auront aucune connaissance de python2 , seulement de python , il est donc parfaitement logique de garder le code Python 2 à la recherche de python . C’est la raison pour laquelle python devrait 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 . Il pourrait également rechercher python2 , s'il est conçu pour ne fonctionner que sur des systèmes bien au fait de Python 3 (qui devraient offrir un tel lien).

L’avantage du code Python 2 utilisant python2 serait qu’il n’y aurait plus besoin de toucher une fois que python commencerait à faire référence à python3 , ce qui n’aurait peut-être jamais lieu, ou une fois que python disparaîtrait, ce qui pourrait pas arriver. (Cela pourrait devenir réalité si le code Python 2 disparaissait après que l'hypothétique Python 4 devienne populaire avec son interprète python4 . - Parce que le laisser pointer sur python3 ou sur python4 serait déroutant.)

    
réponse donnée Robert Siemer 11.07.2017 - 16:28
la source
2

Python 3.x devrait fonctionner avec 16.04 - En fait, cela fonctionnera définitivement. J'ai 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.

    
réponse donnée Danny 25.05.2016 - 03:24
la source

Lire d'autres questions sur les étiquettes