Comment faire pour que la commande du programme 'python' exécute Python 3?

218

La commande de programme python exécute Python 2. Python 3 peut être exécuté en utilisant la commande python3 . Comment Python 3 peut-il être exécuté en utilisant la commande python ?

    
posée Giri 17.07.2013 - 10:04
la source

8 réponses

252

Un moyen simple serait d'utiliser un alias. Placez-le dans le fichier ~/.bashrc ou ~/.bash_aliases :

alias python=python3

Après avoir ajouté ce qui précède dans le fichier, exécutez la commande ci-dessous:

source ~/.bash_aliases or source ~/.bashrc

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 la commande intégrée command :

$ command python --version
Python 2.7.6

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

$ unalias python
$ python --version
Python 2.7.6
    
réponse donnée Radu Rădeanu 17.07.2013 - 10:13
la source
66

[juin 2016] La page recommandée pour les informations sur la transition est la page officielle Ubuntu Python .

À partir du wiki Ubuntu :

  

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

     

Ce que cela signifie :

     
  • /usr/bin/python désignera Python 3. Non, cela ne se produira pas (sauf si PEP 394 préconise le contraire, ce qui est douteux dans un avenir prévisible. /usr/bin/python et /usr/bin/python2 désigneront Python 2.7 et /usr/bin/python3 indiquera la dernière version de Python 3 prise en charge.

  •   
  • Python 2 sera supprimé de l'archive. Non, cela ne se produira pas . Nous nous attendons à ce que Python 2.7 reste supporté et disponible dans Ubuntu depuis longtemps, étant donné que PEP 373 promet un support de maintenance des corrections de bogues en amont jusqu'en 2020.

  •   

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

Pour l’utilisation de la CLI, comme @Radu Rădeanu , je vous recommande de mettre un alias dans ~/.bashrc , .bash_aliases fichier (les différents fichiers, y compris ~/.bash_profile , sont tous chargés ensemble et sont simplement à des fins d'organisation). Python environnements virtuels fonctionnent également bien.

Tels que:

alias python=python3

ou

alias python='/usr/bin/python3'

Les scripts peuvent alors commencer avec quelque chose comme:

#!/usr/bin/env python

au lieu de

#!/usr/bin/python3

Je vous recommande quand même d'utiliser #!/usr/bin/python3 (ou #!/usr/bin/env python3 ) dans des scripts pour une compatibilité croisée plus simple.

L'utilisation de env est intéressante pour une utilisation mixte avec des environnements virtuels.

    
réponse donnée Kevin 02.06.2014 - 18:31
la source
6

Mise à jour: Ce n'est pas la bonne façon, j'ai appris, puisque Python2 et Python3 ne sont pas interchangeables.

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

$ sudo update-alternatives --config python

Si vous obtenez l'erreur "pas d'alternatives pour python", configurez vous-même une alternative avec la commande suivante:

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

Remplacez le chemin /usr/bin/python3 par la version python de votre choix.

    
réponse donnée webwurst 04.05.2014 - 16:03
la source
2

Ubuntu, et le reste des distributions Linux, dépendent encore largement de Python 2.7 pour un certain nombre d’applications et de commandes. Si vous remplacez la référence par défaut de "python" par Python 3.x, un certain nombre de fonctions Python commenceront à générer des erreurs d'assertion.

Par exemple, sur Ubuntu, «pip» pour un ne fonctionnerait plus correctement à moins que vous ayez directement édité le fichier et modifié le shebang pour qu'il fasse 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 ici, c’est que vous provoqueriez une quantité importante de code pour lancer des erreurs d’assertion pour que vous puissiez taper «python» dans le terminal pour référencer 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.

    
réponse donnée Moony 25.03.2016 - 16:43
la source
1

Faites

cd ~
gedit .bash_aliases

alors écrivez non plus

alias python=python3

ou

alias python='/usr/bin/python3'

Enregistrez le fichier, fermez le terminal et ouvrez-le à nouveau.
Lien

    
réponse donnée Breeze 15.09.2017 - 20:36
la source
0

Vous pouvez utiliser update-alternatives pour fournir différentes versions de programmes qui peuvent être nécessaires à différents moments en raison de problèmes de compatibilité.

Cette réponse est un bon exemple de la façon d’organiser la gestion simultanée différentes versions de gcc / g ++, par exemple.

faites juste la même chose avec python2.7 et python 3.3

    
réponse donnée dcanelhas 18.10.2013 - 15:19
la source
0
cat > /usr/local/bin/py
#!/usr/bin/dash
python3 "[email protected]"
<CTRL-D>

(à condition que vous ayez le droit d'écrire sur / usr / local / bin) de même

cat > /usr/local/bin/pyi
#!/usr/bin/dash
python3 -i "[email protected]"
<CTRL-D>

alors vous ne tapez que py (et utilisez py dans les lignes #!) pour votre python choisi.

    
réponse donnée John Allsup 15.01.2016 - 23:57
la source
0

Vous pouvez créer un lien symbolique /usr/bin/python vers python3 avec

sudo ln -s /usr/bin/python3 /usr/bin/python

Voir les autres réponses pour lesquelles vous pourriez ne pas vouloir faire cela. Ubuntu 18.04 n'est plus fourni avec Python 2, il ne devrait donc pas être trop mauvais.

    
réponse donnée boris 03.05.2018 - 23:01
la source

Lire d'autres questions sur les étiquettes