La commande de programme python
exécute Python 2. Python 3 peut être exécutée à l'aide de la commande python3
. Comment exécuter Python 3 à l'aide de la commande python
?
Un moyen simple et sûr serait d'utiliser un alias. Placez ceci dans le fichier ~/.bashrc
ou ~/.bash_aliases
:
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 la commande intégrée command
:
$ command python --version
Python 2.7.6
Une autre façon de contourner l'alias consiste à utiliser \
avant la commande.
$ \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
[juin 2016] L'endroit recommandé pour obtenir des informations sur la transition est officiel buntu Python page.
De la wiki Ubunt :
Pour Ubuntu et Debian, nous avons en cours projet objectifs de rendre Python 3 par défaut, la version préférée Python dans les distributions. .
Ce que cela ne signifie pas :
/usr/bin/python
pointera vers Python 3. Non, cela ne se produira pas (sauf si PEP 394 plaide autrement, ce qui est douteux dans un avenir prévisible)./usr/bin/python
et/usr/bin/python2
pointeront vers Python 2.7 et/usr/bin/python3
pointeront vers la dernière version prise en charge Python 3.Python 2 sera supprimé de l'archive. Non, cela ne va pas arriver . Nous prévoyons que Python2.7 restera pris en charge et disponible dans Ubuntu assez longtemps, étant donné que PEP 37 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 par défaut préférée Python dans les distributions".
Pour l’utilisation de la CLI, comme @ Radu Rădean , je vous conseillerais de mettre un alias dans le fichier ~/.bashrc
, .bash_aliases
de l’utilisateur (les différents fichiers, y compris ~/.bash_profile
, sont chargés au moins une fois et servent principalement à des fins organisationnelles, mais peut varier selon la plate-forme). Python environnements virtuels 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 assurer la compatibilité croisée.
Utiliser env
est idéal pour une utilisation mixte avec des environnements virtuels.
Note (grâce à @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, certains program.py
sans Shebang peuvent être exécutés en appelant l’interprète avec alias, comme ceci python program.py
. L'aliasing peut également être utile pour les systèmes dotés de plusieurs versions de python3 telles que 3.4 et 3.6.
Vous pouvez essayer l'outil en ligne de commande update-alternatives
.
$ Sudo update-alternatives --config python
Si vous obtenez l'erreur "pas d'alternative pour python", configurez vous-même une alternative avec la commande suivante:
$ Sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 10
Modifiez le chemin /usr/bin/python3
en fonction de votre version python souhaitée.
Ubuntu, et le reste des distributions Linux d'ailleurs, dépendent encore largement de Python 2.7 pour un certain nombre d'applications et de commandes. Si vous modifiez la référence par défaut de "python" en Python 3.x, un certain nombre de fonctions Python commenceront à générer des erreurs d'assertion.
Par exemple, sous Ubuntu, "pip" pour un ne fonctionnerait plus correctement à moins que vous n'ayez directement édité le fichier et changé le Shebang en faisant référence à "#!/Usr/bin/env python2.7". Sur les variantes 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 par là, c'est que vous feriez en sorte qu'une grande quantité de code commence à générer des erreurs d'assertion afin de pouvoir taper 'python' dans le terminal pour faire référence à Python 3.x.
Vous ferez bien mieux d'utiliser la commande 'python3' dans le terminal et le Shebang '#!/Usr/bin/env python3' dans vos fichiers Python 3.x.
Faire
cd ~
gedit .bash_aliases
alors écris soit
alias python=python3
ou
alias python='/usr/bin/python3'
Enregistrez le fichier, fermez le terminal et ouvrez-le à nouveau.
Lien
Vous pouvez créer un lien symbolique /usr/bin/python
vers python3
avec
Sudo ln -s /usr/bin/python3 /usr/bin/python
et vous pouvez empêcher que Python 2 et pip2 ne soient installés en tant que dépendance avec
Sudo apt-mark hold python python-pip
Voir les autres réponses pour savoir pourquoi vous ne voulez peut-être pas faire cela. Ubuntu 18.04+ n’est plus livré avec Python 2, donc cela ne devrait pas être trop grave.
cat > /usr/local/bin/py
#!/bin/dash
python3 "$@"
<CTRL-D>
(à condition que vous ayez la permission d'écrire sur/usr/local/bin)
cat > /usr/local/bin/pyi
#!/bin/dash
python3 -i "$@"
<CTRL-D>
alors vous ne tapez que py (et utilisez py dans #! lignes) pour votre python choisi.
Je trouve très utile de supprimer simplement/usr/bin/python et/usr/bin/pip. Cela oblige tous les programmes à utiliser les commandes "python2" et "python3".
Bien que certains paquets optionnels et obsolètes dépendent de #!/usr/bin/python
pour fonctionner, je préfère soumettre des correctifs à ces programmes que de continuer à faire des erreurs étranges et parfois difficiles à déboguer.