579 votes

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

El python La commande du programme exécute Python 2. Python 3 peut être exécuté à l'aide de la commande python3 commandement. Comment exécuter Python 3 en utilisant la commande python commande ?

626voto

Radu Rădeanu Points 156862

Vous pouvez installer un paquetage pour l'ensemble du système :

$ sudo apt install python-is-python3

Voir les avertissements : Paquet Python-is-python3 dans Ubuntu 20.04 - qu'est-ce que c'est et que fait-il réellement ?

Un moyen simple et sûr serait d'utiliser un alias. Placez celui-ci dans ~/.bashrc o ~/.bash_aliases fichier :

alias python=python3

Après avoir ajouté ce qui précède dans le fichier, exécutez source ~/.bashrc o 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 l'option 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 la commande unalias commande intégrée :

$ unalias python
$ python --version
Python 2.7.6

114voto

Boris Points 2305

Sur Ubuntu 20.04+. il suffit d'installer le python-is-python3 paquet :

sudo apt install python-is-python3

En plus de cela, vous pouvez empêcher que Python 2 soit 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

103voto

mrks Points 510

[juin 2016] L'endroit recommandé pour obtenir des informations sur la transition est l'organisme officiel suivant Ubuntu Python page.


De la Wiki Ubuntu :

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

Ce que cette n'est pas moyen :

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

  • Python 2 sera retiré de l'archive. Non, ça n'arrivera pas. . Nous nous attendons à ce que Python 2.7 reste supporté et disponible dans Ubuntu pendant un bon moment, étant donné que PEP 373 promet une assistance en amont pour la correction des bogues et la maintenance jusqu'en 2020.

Il n'est pas recommandé de changer le lien symbolique à cause des autres dépendances du paquet, mais ils "ont des objectifs de projet en cours pour faire de Python 3 la version de Python par défaut, préférée dans les distros".


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

Exemples d'alias :

alias python=python3

または

alias python='/usr/bin/python3'

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

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

Note (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 shebang pourrait être exécuté en invoquant l'interprète aliasé comme ceci python program.py . L'aliasing peut aussi être utile pour les systèmes avec plusieurs versions de python3 comme 3.4 et 3.6 ensemble.

52voto

Moshe Points 582

Mise à jour : J'ai appris que ce n'est pas la bonne méthode, puisque Python2 et Python3 ne sont pas interchangeables.

Vous pouvez essayer l'outil en ligne de commande update-alternatives .

$ sudo update-alternatives --config python

Si vous obtenez l'erreur "no alternatives for Python", configurez vous-même une alternative avec la commande suivante :

$ sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 10

Modifier le chemin /usr/bin/python3 à la version de Python de votre choix.

11voto

Moony Points 119

Ubuntu, ainsi que les autres distributions Linux, dépendent encore largement de Python 2.7 pour un certain nombre d'applications et de commandes. Si vous changez la référence par défaut de "Python" pour Python 3.x, un certain nombre de fonctions Python commenceront à lancer des erreurs d'assertion.

Par exemple, sous Ubuntu, "pip", par exemple, ne s'exécute plus correctement à moins que vous ne modifiiez directement le fichier et changiez le shebang pour faire référence à "#!/usr/bin/env python2.7". Sur les versions RHEL (Red Hat Enterprise Linux) telles que Red Hat, Fedora et CentOS, la commande 'Yum' dépend également de Python 2.7.

Ce que je veux dire, c'est que vous feriez en sorte qu'une quantité significative de code commence à lancer des erreurs d'assertion juste pour que vous puissiez taper 'Python' dans le terminal pour faire référence à Python 3.x.

Il est préférable d'utiliser la commande 'python3' dans le terminal et le shebang '#!/usr/bin/env python3' dans vos fichiers Python 3.x.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X