Python pip roto después de la actualización OS X 10.8

Realice la actualización a Mac OS X 10.8 (Mountain Lion) y obtenga ahora el siguiente error al intentar llamar a $ pip :

 Traceback (most recent call last): File "/usr/local/bin/pip", line 5, in  from pkg_resources import load_entry_point File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources.py", line 2603, in  working_set.require(__requires__) File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources.py", line 666, in require needed = self.resolve(parse_requirements(requirements)) File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources.py", line 565, in resolve raise DistributionNotFound(req) # XXX put more info here pkg_resources.DistributionNotFound: pip==1.1 

Actualización: Intenté reinstalar haciendo el procedimiento de instalación nuevamente (con http://www.pip-installer.org/en/latest/installing.html#using-the-installer y easy_install ), pero no funcionó, obtuve el mismo error.

Intenté ahora lo siguiente: Llamar a $ sudo pip y desaparece el error anterior. Lo extraño es que los directorios que no se pudieron encontrar en el mensaje de error anterior apuntan a / System / Library / … mientras que la instalación de python es (¿nueva?) Para encontrar en / Library / Frameworks / ..:

 $ which python /Library/Frameworks/Python.framework/Versions/Current/bin/python 

¿Alguna idea de cómo deshacerse del sudo?

Use easy_install para actualizar su pip a la última versión:

sudo easy_install -U pip

También asegúrese de tener el último XCode instalado (ver 4.4) con las Command Line Tools .

Esto funciona para mi

 rm -f /usr/local/bin/easy_install brew reinstall python pip install --upgrade setuptools pip install --upgrade pip 

Tuve un error similar, excepto que sudo pip tampoco funcionó. Estoy usando una instalación “pirata” de python (que está enlazada a / usr / local / bin) y encontré que el problema era que los shebangs en los archivos pip y easy_install estaban codificados para #!/usr/bin/python lugar de #!/usr/local/bin/python , y así estaba usando la versión de python del sistema en lugar de la versión de brew.

Saludos, Tom

En realidad no pude hacer lo que se sugirió. En cambio tuve que ejecutar:

 xcode-select --install 

Luego pude instalar el módulo ldap.

Intenté todas las respuestas aquí, desde reinstalar easy_install para instalar una nueva versión de python, nada me funcionó.

Lo que hice fue instalar una nueva instalación de Python en la carpeta / Library / Frameworks, y un enlace simbólico a ese desde / usr / local / bin (por alguna razón, mi sistema tenía un enlace simbólico de /Library/Frameworks/Python.framework a / Sistema / Frameworks / Python.framework). Mi idea fue mantener los archivos / System / Library / Frameworks para que los usen los comandos del sistema en / usr / bin, y hacer que / usr / local / bin apunte a otra instalación de “usuario land” en / Library / Frameworks. Para hacer eso :

  • renombrar /System/Library/Framework/Python.framework en _OLD_Python.framework

  • elimine todos los archivos de python en / usr / local / bin (usando sudo rm / usr / local / bin / python *) y / usr / local / bin / pip * (pero NO toque / usr / bin)

  • Reinstale python desde el sitio oficial ( http://www.python.org/getit/ ) ==> Esto reinstalará python en / Library / Framework y no / System / Library / Framework

  • Luego ejecute el comando Applications / Python / Update Shell.command para asegurarse de que su ruta esté usando esa.

  • Luego, vuelva a crear los enlaces simbólicos en / usr / local / bin usando

    ln -s ../../Library/Frameworks/Python.framework/Versions/2.7/bin/python python

  • Finalmente, renombra el _OLD_Python.framework de nuevo a Python.framework (porque esa es la ruta / usr / bin / python a la que apunta)

Escribir “qué python” debería apuntar a / Library / … y no / System / Library. Desde allí, debe poder reinstalar easy_install y pip correctamente.

En lugar de cambiar la propiedad, es posible simplemente cambiar los permisos:

$ sudo chmod -R o + rX /Library/Python/2.7/site.packages

En Mavericks, encontré que

 ls -l `which python` /usr/local/bin/python -> ../../../Library/Frameworks/Python.framework/Versions/2.7/bin/python 

mientras pip mostraba

 ls -l `which pip` /usr/local/bin/pip 

Cambié el nombre de pip y creé un enlace simbólico al binario pip apropiado, y ahora todo está bien. Probablemente no sea la mejor solución, pero funciona.

Arreglé esto reinstalando python con homebrew: brew install python

Cambié los permisos para la carpeta de Python (de la raíz a mi usuario), y ahora todo funciona para mí:

 sudo chown -R :wheel /Library/Python/2.7/site-packages/ 

No recomendado para máquinas con múltiples usuarios.

Por lo general, tuve el mismo problema con algún proyecto que hacía referencia a bonjour-py en sus requirements.txt , no sabía cuál o cómo rastrearlo en este momento.

Y alguien me dijo que pip-herramienta . En realidad, es una excelente alternativa para identificar cuál tiene y si desea actualizarlos. Y como un bono ignoró bien el error bonjour-py .