J'ai récemment mis à niveau mon installation Mac OS X 10.5 Leopard vers 10.6 Snow Leopard, avec une version mise à niveau de Python, 2.6.1 (au lieu de 2.5.1). Maintenant, quand je tape python
dans le terminal, je reçois toujours
Python 2.5.1 (r251:54869, Apr 18 2007, 22:08:04)
[GCC 4.0.1 (Apple Computer, Inc. build 5367)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>
J'ai regardé dans /usr/bin/
et constaté que pour obtenir Python 2.6, je dois taper python2.6
.
La question est la suivante: Comment mapper la commande python
vers Python 2.6?
C'est facile:
defaults write com.Apple.versioner.python Version 2.6
Voir man python
pour une explication complète d'Apple.
En outre, un problème: assurez-vous que vous utilisez le Python fourni avec votre ordinateur et non un autre que vous avez installé. Pour ce faire, tapez which python
à l'invite de commande. Il devrait pointer sur /usr/bin/python
. Je mentionne cela uniquement parce que ma valeur par défaut est 2.6 sous Snow Leopard (c’était la version 2.5 lorsque j’utilisais Leopard). Donc, le fait que vous obteniez 2.5 peut indiquer qu’il ya autre chose sur votre chemin.
Mettre à jour
Répondre aux commentaires ci-dessous:
Cela ne fait pas ce que les gens demandent.
C'est le cas pour moi sous OS X 10.8.2. Après avoir exécuté defaults write com.Apple.versioner.python Version 2.6
, la version par défaut de Python est bien la 2.6. (Et de même après être revenu à 2.7.)
Cela est vrai que j'exécute directement python
ou que j'utilise un script exécutable commençant par #!/usr/bin/env python
— Je reçois la version attendue de Python.
Cela ne résout pas le lien symbolique dans /System/Library/Frameworks/Python.framework/Versions où Current pointe vers 2.7, ce qui peut poser problème (car il se trouve toujours dans le sys.path avec 2.6!).
En effet, il ne résout pas ce lien symbolique.
Cependant, exécutez un court script qui print()
s le sys.path
et (du moins sur ma configuration par défaut) les répertoires de la bibliothèque 2.6 sont sur le chemin et les répertoires 2.7 sont pas sur le chemin. Le répertoire Current
ne figure pas non plus sur le chemin. Cela ne devrait donc pas poser de problème pour la plupart des scripts.
Cependant, il n’est pas possible, sans avoir été testé, que le lien symbolique Current
soit utilisé par easy_install
ou pip
. Cela causerait des problèmes. Il semble évident que le lien symbolique n’est pas mis à jour lorsque vous mettez à jour la version Python.
Je suggère d'utiliser des ports mac ...
Il existe un paquetage appelé python_select qui permet d’utiliser des pythons en parallèle. Donc, installez d’abord les ports mac s’ils ne sont pas déjà installés.
Commencez par installer le paquet python_select:
Sudo port install python_select
Vous pouvez d'ores et déjà vérifier quelles distributions Python sont disponibles sur votre système. Il suffit d'envoyer la commande:
port select --list python (MacPorts 2.x)
python_select -l (MacPorts 1.x)
Dans mon cas, il a au moins imprimé la version python qui est fournie par défaut avec Snow Leopard: python26-Apple
.
port select --show python (MacPorts 2.x)
python_select -s (MacPorts 1.x)
affiche la version actuellement sélectionnée, par exemple python26-Apple
. Donc, vous voyez, ce paquet joue bien avec Mac. Pour plus d'options
port select (MacPorts 2.x)
python_select -h (MacPorts 1.x)
Ensuite, vous pouvez rechercher la version disponible de Python dans le référentiel des ports:
port search python
Cela produira une longue liste de pythons disponibles.
Pour installer les packages souhaités, par exemple Python 2.4 exécuter:
Sudo port install python24
Maintenant, le python_select -s
affichera également le python fraîchement installé. Pour passer au problème python 2.4:
Sudo port select --set python python24 (MacPorts 2.x)
Sudo python_select python24 (MacPorts 1.x)
Cette commande est persistante entre les shells.
En supposant que vous utilisez bash, tapez:
% type -a python
Cela vous montrera tous les exécutables "python", les alias, les fonctions intégrées du shell (probablement aucune) ou les fonctions bash de votre PATH.
Cela devrait vous aider à mieux identifier ce qui se passe ici.
Vous voulez créer un lien symbolique vers la version souhaitée.
cd /Library/Frameworks/Python.framework/Versions
Sudo rm Current
Sudo ln -s /Library/Frameworks/Python.framework/Versions/2.6 Current
Cela supprime le pointeur actuel sur votre version Python par défaut et le définit sur votre version 2.6.
Pas idéal (IMO), mais cela corrigeait toutes les applications à la recherche de python
dans mon /usr/local/bin/
.
Sudo cp /usr/local/bin/python3 /usr/local/bin/python
Bien sûr, après avoir installé la dernière version de Python.