web-dev-qa-db-fra.com

Changer la version de python sans casser le centre logiciel

Je manipulais mon installation de Python sous Ubuntu 12.04 (je ne parvenais pas à installer une bibliothèque python) et, à un moment donné, ma commande python ne fonctionnait pas. Il s'est avéré que le lien symbolique était manquant (je dois l'avoir supprimé par accident lol), alors je en ai créé un nouvea indiquant Python 3.2 (à l'origine désigné par 2.7):

Sudo rm /usr/bin/python
Sudo ln -s /usr/bin/python3.2 /usr/bin/python

Problème: le centre de logiciel et le gestionnaire de mise à jour ne fonctionnaient pas:

~$ software-center
  File "/usr/bin/software-center", line 152
    print time.time()
             ^
SyntaxError: invalid syntax

J'ai deviné que c'était parce que j'avais changé la version par défaut de python (2.7-> 3.2), je l'ai donc ramenée à la version 2.7. Maintenant, ils fonctionnent bien, mais j'aimerais quand même changer la version 'par défaut' python (c'est-à-dire celle appelée avec python dans le terminal).

Est-il possible de faire cela dans Ubuntu 12.04?
Merci!

3
Sean Bone

Vous ne devriez pas changer le lien symbolique de python pour qu'il pointe vers Python 3, car vous en avez déjà vu les conséquences. Et je vous recommanderais de prendre l'habitude d'appeler Python 3 programmes avec python3, car cela entraînerait le moins de problèmes possible par la suite.

Mais si vous insistez pour appeler Python 3 sur votre terminal à l'aide de python, vous pouvez créer un alias pour celui-ci. Rappelez-vous, alias est différent de symlink. Editez le fichier ~/.bash_aliases (créez-le s'il n'existe pas) pour y ajouter les éléments suivants:

alias python='python3.2'

Ensuite, redémarrez votre terminal et vous pourrez exécuter Python 3 en appelant python. Cela ne casse rien, contrairement au changement du lien symbolique.

Vous pouvez même ajouter des alias tels que alias py3='python3.2', puis appeler py3 pour exécuter Python 3. C'est encore plus court et moins déroutant.

3
Aditya

Ne fais pas ça:

  • Les programmes Python fournis avec Ubuntu dépendent de /usr/bin/python étant la version Python2 par défaut de votre distribution. Ils vont probablement casser si c'est autre chose.
  • PEP-0394 recommande que la commande python appelle Python2. La plupart des Python programmes s'interrompront si elles appellent plutôt Python3.

Utilisez plutôt /usr/bin/python3 si vous voulez utiliser Python3.

3
Florian Diesch