J'essaie d'installer la dernière version de six python mais j'ai les problèmes suivants. Je ne peux pas me débarrasser de six 1.4.1 sous mac OSX 10.10.2
Sudo pip install six --upgrade
Requirement already up-to-date: six in /Library/Python/2.7/site-packages
Cleaning up...
pip search six
six - Python 2 and 3 compatibility utilities
INSTALLED: 1.9.0 (latest)
python -c "import six; print six.version"
1.4.1
which -a python
/usr/bin/python
which -a pip
/usr/local/bin/pip
Qu'est-ce qui ne va pas ici? Impossible de mettre à niveau six!
Par défaut, Mac OS X python est installé comme framework. Sous le répertoire framework, il y a un répertoire 'Extras' et le package six
y est déjà placé.
/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/six.py
Selon la description ( https://github.com/MacPython/wiki/wiki/Which-Python ), /System/Library/Frameworks/Python.framework/Versions/2.7/Extras
est répertorié avant /Library/Python/2.7/site-packages
dans le chemin de recherche du module. Cela signifie que tous les packages existent déjà dans /System/Library/Frameworks/Python.framework/Versions/2.7/Extras
impossible de mise à niveau.
Vous devriez peut-être installer python manuellement et ne pas utiliser python par défaut.
J'ai résolu le problème par la méthode suivante.
python setup.py install
Cela fonctionne car il installe la nouvelle version de six à / Library/Python/2.7/site-packages / qui est recherché avant / System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python /
Pour moi, utiliser simplement homebrew a tout corrigé.
brew install python
Votre binaire pip
appartient à /usr/local/bin/python
, tandis que python
pointe vers /usr/bin/python
. En conséquence
pip install --upgrade six
va installer sur /usr/local/bin/python
.
La commande ci-dessous s'assurera que la bonne version de pip est utilisée:
python -m pip install --upgrade six
Ce qui a fonctionné pour moi, c'était d'utiliser easy_install
au lieu de pip
.
easy_install -U six
Easy_install a réussi à mettre à niveau le package même en cas d'échec de pip.
Je suis tombé sur ce problème exact lors de l'utilisation de pip pour installer le client openstack. Mon correctif consistait à utiliser easy_install au lieu de pip, car il utilise /Library/Python/2.7/site-packages/
pour l'installation du module au lieu de /System/Library/Frameworks/Python.framework/Versions/2.7/Extras
. Si cette solution de contournement n'est pas une option pour vous, je peux confirmer que @Masakazu Matsushita a la solution de contournement correcte en définissant PYTHONPATH
sur /Library/Python/2.7/site-packages
. Pour implémenter cette solution de contournement, ajoutez cette ligne:
export PYTHON_PATH=/Library/Python/2.7/site-packages
à ton ~/.bashrc
et ~/.profile
(s'il s'agit d'une interface graphique Python que vous essayez d'installer).
Essayez avec pip2 son travail pour moi pip2 install -U six
Essayez ces étapes
Réinstaller python en utilisant brew
$ brew install python
Résoudre le problème de lien symbolique manquant
$ brew link --overwrite python
Redémarrez le système ou exécutez
$ hash -r python
Bien que l'une ou l'autre des solutions ci-dessus puisse fonctionner pour vous, je pense qu'il est important de comprendre ce qui se passe et quelles sont les options que vous avez. J'ai trouvé cette (assez longue) description très utile: elle commence par décrire les options et suggère ensuite des solutions.
Au final, le problème pour moi était que j'utilisais IPython Shell.
which ipython
revenu /usr/local/bin/ipython
et lors de l'inspection ce fichier a déclaré en haut #!/usr/bin/python
, qui semblait contourner tous mes efforts pour utiliser le bon emplacement python.
Changer simplement cette ligne #!/usr/local/bin/python
pour pointer vers la bonne version python signifiait alors qu'IPython utilisait le bon module six
.