web-dev-qa-db-fra.com

12.10 a Python 3.2.3 par défaut, cela a-t-il un impact sur les outils python existants?

Ubuntu 12.10 a Python 3.2.3 par défaut, cela a-t-il un impact sur les outils python existants, conçus pour être utilisés avec les anciens python 2.x? Il y a eu une discussion dans HackerNews sur le même sujet. Je suis un peu inquiet maintenant de guider quelqu'un dans le monde python qui passe à la dernière version 12.10 pour la raison pour laquelle il est livré avec Python3.2

J'installe actuellement 12.10 à partir de 12.04. Puis-je travailler côte à côte sur Python versions 2.x et 3.x sans endommager le système? Merci.

5
pajju

Non, cela n'affecte pas les outils Python2 existants.

12.10 a Python3 installé par défaut, mais cela ne veut pas dire que c'est le "Python par défaut". À ce stade, Python2 est également installé par défaut (AFAIK) et, surtout,/usr/bin/python est toujours un lien symbolique vers python2.7.

La transition vers Python3 a été effectuée de telle sorte que les applications Python2 existantes n’ont aucun effet. 2 et 3 sont installables en parallèle et installent leurs packages de site à des emplacements différents.

Si vous souhaitez que votre application utilise Python3, vous devez explicitement modifier Shebang en:

#!/usr/bin/python3

Voir Python 3 sur Ubunt pour plus de détails.

19
jderose

le hash bang devrait être:

#!/usr/bin/env pythonX.Y.Z

et pas

#!/usr/bin/pythonX.Y.Z

De cette façon, le code fonctionnera même si python n'est pas dans /usr/bin/python mais dites /usr/local/bin/python ou /opt/python2.7/bin/python et si tout est dans $PATH.

Cela fait même que le code fonctionne sur OSX. IIRC devrait également charger le runtime actuel sur Windows [1].

[1] http://www.python.org/dev/peps/pep-0397/

0
GegoXAREN