Si vous configurez un environnement virtuel avec: "python3 -m venv my-venv", activez-le depuis n'importe quel terminal en appelant "source ... / my-env / bin / activate", python 3.5 deviendra alors le défaut dans ce terminal. Vous pouvez vérifier la version par défaut actuelle en appelant "python -V".
Craig Hicks
Bien que votre réponse soit utile, j'ai demandé pourquoi. pas comment. et c'est le grand débat. ici. pourquoi une version plus ancienne par défaut, au lieu de la version actuelle.
Givonz
1
Vous avez tout à fait raison à propos de mon "commentaire"! C'est pourquoi j'ai écrit un commentaire et non une réponse.
Craig Hicks
Réponses:
56
Je ne sais pas quels "docs" vous lisez ni ce qu'ils disent, mais il ne /usr/bin/pythons'agit que d'un lien symbolique vers la version par défaut de python, dans ce cas 2.7, qui résulte du simple fait de taper pythonsur le terminal. C’est le résultat du PEP 394 qui définit
pour le moment, toutes les distributions doivent s'assurer que se pythonréfère à la même cible quepython2 .
type pythonet vous file /usr/bin/pythonle confirmerez.
Pour utiliser python 3, vous devez être explicite et taper python3dans 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.
Pour obtenir le REPL Python 3.5 ou exécuter un script compatible, tapez python3. Cela permet de maintenir la compatibilité avec tous les anciens Python 2.x (qui ont toujours été et resteront liés python).
Le tiret pourrait trouver pythonsi vous configurez un .desktopfichier pour lui (en ~/.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.
Parler de Python 3.5 par défaut concerne les responsables qui portent tous les scripts système de python 2.x à python 3.x, et non pas que python 3 remplacerait python 2 dans tous les cas.
Donc, je suppose que la bonne question est, comment puis-je ajouter python3 dans mon chemin, afin qu'il s'exécute automatiquement?
Givonz
voulez-vous dire, comment obtenez-vous des scripts python à exécuter comme un programme compilé?
Andrew Keech
je l'ai Merci. Il suffit de taper python3 à l'invite de commande.
Givonz
2
AIUI quoi faire avec / usr / bin / python à long terme reste une question ouverte. La meilleure pratique pour les scripts python2 serait d'utiliser explicitement python2.
Peter Green
1
Plutôt que d'utiliser #!/usr/bin/python3(ou #!/usr/bin/python2) dans des scripts, utilisez plutôt (uniquement pour Python) #!/usr/bin/env python3si vous voulez qu'il soit portable à distance. Pour l’essentiel, il ne s’agit que de documentation, puisqu’on l’appellera de $ python3 your_pyprogram.pytoute façon.
Michael
4
Vous supposez que le Python par défaut devrait être disponible en tant que python. Cette hypothèse est fausse.
Sur un système livré avec Python 3 «préchargé» et aucun Python 2, il y en aura seulement python3et pas python.
Le code écrit pour Python 3 devrait toujours rechercher un interpréteur appelé python3. Le code écrit pour Python 2 recherchera historiquement python.
Il pourrait arriver un moment, peut-être dans quelques décennies, où presque personne ne se souviendra de Python 2, auquel il pythonpourrait commencer à se référer python3. Ce serait purement pratique, 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 n’auront aucune connaissance de python2, pythonil est donc logique de garder le code Python 2 à la recherche de python. C’est la raison pour laquelle il pythonconvient de 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 chercher python. Il pourrait également rechercher python2, s’il est conçu pour ne fonctionner que sur des systèmes bien consciencieux et pris en charge par Python 3 (qui devraient offrir un tel lien).
L’utilisation du code Python 2 présente l’avantage de python2ne pas avoir à toucher une fois pythonde plus python3, ce qui pourrait ne jamais se produire ou une fois pythondisparaître, ce qui pourrait ou non se produire. (Cela pourrait devenir réalité si le code Python 2 disparaissait après que l'hypothétique Python 4 devienne populaire avec son interpréteur python4. - Parce que le laisser pointer sur l'un python3ou sur l'autre python4serait déroutant.)
Comment tapez-vous la même commande et obtenez 2 résultats différents?
Givonz
4
le résultat différent lors de la deuxième invocation de pythonest à l'aide <tab>de l'interrogation de l'auto-compléteur, qui affiche ensuite les permutations possibles python*et vous renvoie à une nouvelle invite.
Andrew Keech
@givonz, hmm j'ai utilisé la touche TAB bro. sa pas sortie. il est possible modèle binaire.
dimanche
Vote négatif pour quoi?
dimanche
2
Je n'ai pas voté vers le bas mais je pense que la réponse devrait expliquer pourquoi les 2 premiers résultats sont différents et quel est le rôle de apt-cache, en particulier pour les débutants sous Ubuntu.
AL
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 python3et il devrait vous indiquer la version que vous utilisez.
Eh bien, je n’appellerais pas en utilisant un système informatique OS. Et à proprement parler: Ubuntu est un système d’exploitation basé sur Linux et non sur Unix.
magu_
Je n'ai pas encore compris le diff bet linux & unix en plus des invites de commande et des commandes différemment, mais étroitement formulées. bien que l'interface graphique soit bien plus avancée que ce que je vois dans solaris.
Givonz
1
-1 Cela ne répond pas à la question de savoir pourquoi .
Réponses:
Je ne sais pas quels "docs" vous lisez ni ce qu'ils disent, mais il ne
/usr/bin/python
s'agit que d'un lien symbolique vers la version par défaut de python, dans ce cas 2.7, qui résulte du simple fait de taperpython
sur le terminal. C’est le résultat du PEP 394 qui définittype python
et vousfile /usr/bin/python
le confirmerez.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 , de sorte que le lien symbolique python pointe vers 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 tapantpython2
. Ubuntu inclut les versions 2 et 3 de Python par défaut sur toutes les versions actuelles.Il est prévu de tout migrer vers Python 3 et de le marquer comme défaut.
la source
Pour obtenir le REPL Python 3.5 ou exécuter un script compatible, tapez
python3
. Cela permet de maintenir la compatibilité avec tous les anciens Python 2.x (qui ont toujours été et resteront liéspython
).Le tiret pourrait trouver
python
si vous configurez un.desktop
fichier pour lui (en~/.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.Parler de Python 3.5 par défaut concerne les responsables qui portent tous les scripts système de python 2.x à python 3.x, et non pas que python 3 remplacerait python 2 dans tous les cas.
la source
#!/usr/bin/python3
(ou#!/usr/bin/python2
) dans des scripts, utilisez plutôt (uniquement pour Python)#!/usr/bin/env python3
si vous voulez qu'il soit portable à distance. Pour l’essentiel, il ne s’agit que de documentation, puisqu’on l’appellera de$ python3 your_pyprogram.py
toute façon.Vous supposez que le Python par défaut devrait être disponible en tant que
python
. Cette hypothèse est fausse.Sur un système livré avec Python 3 «préchargé» et aucun Python 2, il y en aura seulement
python3
et paspython
.Le code écrit pour Python 3 devrait toujours rechercher un interpréteur appelé
python3
. Le code écrit pour Python 2 recherchera historiquementpython
.Il pourrait arriver un moment, peut-être dans quelques décennies, où presque personne ne se souviendra de Python 2, auquel il
python
pourrait commencer à se référerpython3
. Ce serait purement pratique, 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 n’auront aucune connaissance de
python2
,python
il est donc logique de garder le code Python 2 à la recherche depython
. C’est la raison pour laquelle ilpython
convient de 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 chercher
python
. Il pourrait également rechercherpython2
, s’il est conçu pour ne fonctionner que sur des systèmes bien consciencieux et pris en charge par Python 3 (qui devraient offrir un tel lien).L’utilisation du code Python 2 présente l’avantage de
python2
ne pas avoir à toucher une foispython
de pluspython3
, ce qui pourrait ne jamais se produire ou une foispython
disparaître, ce qui pourrait ou non se produire. (Cela pourrait devenir réalité si le code Python 2 disparaissait après que l'hypothétique Python 4 devienne populaire avec son interpréteurpython4
. - Parce que le laisser pointer sur l'unpython3
ou sur l'autrepython4
serait déroutant.)la source
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.
la source
python
est à l'aide<tab>
de l'interrogation de l'auto-compléteur, qui affiche ensuite les permutations possiblespython*
et vous renvoie à une nouvelle invite.apt-cache
, en particulier pour les débutants sous Ubuntu.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.la source