Python >> Tutoriel Python >  >> Python Tag >> exec()

Comment faire en sorte que la commande de programme 'python' exécute Python 3?

Un moyen simple et sûr serait d'utiliser un alias. Placez ceci dans ~/.bashrc ou ~/.bash_aliases fichier :

alias python=python3

Après avoir ajouté ce qui précède dans le fichier, exécutez source ~/.bashrc ou source ~/.bash_aliases .

Par exemple :

$ python --version
Python 2.7.6
$ python3 --version
Python 3.4.3
$ alias python=python3
$ python --version
Python 3.4.3

Pour contourner l'alias, utilisez le command commande intégrée :

$ command python --version
Python 2.7.6

Une autre façon de contourner l'alias est d'utiliser \ avant la commande.

$ \python --version 
Python 2.7.6

Pour désactiver l'alias dans le shell actuel, utilisez le unalias commande intégrée :

$ unalias python
$ python --version
Python 2.7.6

[juin 2016] L'endroit recommandé pour obtenir des informations sur la transition est la page officielle d'Ubuntu Python.

Depuis le wiki Ubuntu :

Pour Ubuntu et Debian, nous avons des objectifs de projet en cours pour faire de Python 3 la version Python préférée par défaut dans les distributions.

Ce que cela ne fait pas signifie :

  • /usr/bin/python pointera vers Python 3. Non, cela n'arrivera pas (à moins que la PEP 394 ne préconise le contraire, ce qui est douteux dans un avenir prévisible). /usr/bin/python et /usr/bin/python2 pointera vers Python 2.7 et /usr/bin/python3 pointera vers la dernière version Python 3 prise en charge.

  • Python 2 sera supprimé de l'archive. Non, cela n'arrivera pas . Nous nous attendons à ce que Python 2.7 reste pris en charge et disponible dans Ubuntu pendant assez longtemps, étant donné que la PEP 373 promet une prise en charge de la maintenance des correctifs de bogues en amont jusqu'en 2020.

Il n'est pas recommandé de modifier le lien symbolique en raison d'autres dépendances de packages, mais ils "ont des objectifs de projet en cours pour faire de Python 3 la version Python préférée par défaut dans les distributions".

Pour une utilisation CLI, comme @Radu Rădeanu, je recommanderais de mettre un alias dans le ~/.bashrc de l'utilisateur , .bash_aliases file (les différents fichiers, dont ~/.bash_profile , sont chargés au moins une fois, sont principalement à des fins d'organisation, mais peuvent varier selon la plate-forme). Les environnements virtuels Python fonctionnent également bien.

Exemples d'alias :

alias python=python3

ou

alias python='/usr/bin/python3'

Les scripts doivent toujours utiliser quelque chose comme #!/usr/bin/env python3 pour la compatibilité croisée.

Utiliser env est agréable pour une utilisation mixte avec des environnements virtuels.

Remarque (merci à @wjandrea) :les alias font partie du runtime bash, pas de l'environnement utilisateur. Par conséquent, ils ne sont pas disponibles pour le shebang (#! ). Si vous préférez l'alias python=python3, alors quelques program.py sans un shebang pourrait être exécuté en invoquant l'interpréteur aliasé comme ceci python program.py . L'aliasing peut également être utile pour les systèmes avec plusieurs versions de python3 comme 3.4 et 3.6 ensemble.


Sur Ubuntu 20.04+ vous pouvez faire

sudo apt install python-is-python3

En plus de cela, vous pouvez empêcher Python 2 d'être installé en tant que dépendance de quelque chose à l'avenir avec apt-mark hold :

sudo apt-mark hold python2 python2-minimal python2.7 python2.7-minimal libpython2-stdlib libpython2.7-minimal libpython2.7-stdlib