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
?
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
[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.
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.
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.
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
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.
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.