web-dev-qa-db-fra.com

Comment définir python 3 comme interprète par défaut dans Ubuntu 14.04

Je travaille avec Ubuntu 14.04 LTS sur EC2. Je souhaite modifier l'interprète python par défaut de python 2.7 à 3.4.0, qui est installé par défaut.

Quand je fais:

/home/ubuntu$ which python
/usr/bin/python

regardant dans /usr/bin/ je vois:

enter image description here

Alors évidemment, c'est là. Comment définir cela par défaut?

30
user61629

Il y aurait plusieurs façons de le faire. Commencez par modifier les liens symboliques afin que le pythondans /usr/bin/ pointe réellement au même emplacement que le /usr/bin/python3-sym-link. Cependant, c'est une mauvaise idée (comme je l'explique ci-dessous).

La deuxième option serait de créer un alias de commande spécifique à l'utilisateur - c'est la meilleure option des deux.


Changer de lien est mauvais

Python est utilisé dans une grande partie d'Ubuntu pour les scripts système et les logiciels, et les logiciels reposent sur le fait d'avoir Python (et les commandes permettant de démarrer Python) à un certain endroit.
Voir ici (Wiki Ubuntu - plutôt obsolète) et ici (Wiki Debian) pour plus d'informations sur l'utilisation par Ubuntu/Debian Python pour.

Maintenant, alors que Python 3 (3.4.0 dans votre cas) est la version la plus récente et suggérée de Python, il y a toujours Il reste encore beaucoup de code qui n'a pas été porté sur Python 3.

Comme vous l'avez vu précédemment, l'exécution de pythonexécute par défaut l'interpréteur Python 2.7 - et c'est ce à quoi le logiciel de votre ordinateur est censé s'attendre.

Donc, si vous modifiez la commande pour qu'elle exécute Python 3, vous allez provoquer toutes sortes de dégâts et de ruptures de code, car vous allez essayer d'exécuter Python 2.7 code (qui est écrit en syntaxe Python 2.7 et utilise les bibliothèques Python 2.7) à l'aide de l'interpréteur Python 3.4 (qui attend la syntaxe Python 3.4 et Python 3.4 bibliothèques.)


Méthode de création d'alias plus sûre

Cependant, ce que vous pouvez faire, c'est créer un alias pour votre usage personnel. Ceci peut être accompli facilement en ajoutant la ligne suivante:

alias python=python3

ou

alias python=/usr/bin/python3

/ dans le fichier ~/.bash_aliases - que vous pouvez éditer via Sudo nano ~/.bash_aliases. Ensuite, fermez et rouvrez le terminal. Vous devriez pouvoir utiliser la commande pythonpour votre usage personnel sans que cela n’affecte le reste du système.

Cependant, cela, encore une fois, n’est pas suggéré car, bien que vous ne détruisiez aucun des codes du système qui reposent sur le placement correct des interprètes Python, j’ai entendu dire que cela pouvait causer d’autres problèmes ( Je ne sais pas/me souviens.)


Méthode appropriée ne nécessitant aucune modification de l'interprète Python

Si vous écrivez Python avec une syntaxe correcte, vous devez inclure ce qu'on appelle Shebang . (Voir aussi ici , et ici .)

S'il est correctement inclus, cela vous permettrait d'exécuter un script Python simplement via ./SCRIPT-NAME.py après avoir rendu le script exécutable via Sudo chmod +x ./SCRIPT-NAME.py. Vous pouvez également renoncer totalement au type de fichier .py et taper simplement le code dans un fichier vide et l'enregistrer sous le nom SCRIPT-NAME, puis exécuter Sudo chmod +x ./SCRIPT-NAME et l'exécuter via ./SCRIPT-NAME.

Certes, cela nécessite un peu plus de travail - mais cela garantira que votre code est exécuté à l'aide du bon interprète.

Et vraiment. Est-il difficile de taper python3 pour exécuter le code correctement? Je n'essaie pas d'être méchant, et je vois un peu pourquoi vous voudriez le faire, mais ce n'est pas si difficile d'exécuter python3 au lieu de pythonname__.

41
RPiAwesomeness