¿Qué está causando ImportError: ningún módulo llamado pkg_resources después de la actualización de Python en OS X?


82

Acabo de actualizar Python a 2.6.4 en mi Mac. Lo instalé desde el paquete dmg.

No parecía el binario para configurar correctamente mi camino Python, por lo que añade '/usr/local/lib/python2.6/site-packages'en.bash_profile

>>> pprint.pprint(sys.path)  
['',
'/Users/Bryan/work/django-trunk', 
'/usr/local/lib/python2.6/site-packages',  
'/Library/Frameworks/Python.framework/Versions/2.6/lib/python26.zip',  
'/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6',  
'/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-darwin',  
'/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-mac',  
'/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-mac/lib-scriptpackages',  
'/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-tk',  
'/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-old',  
'/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-dynload',  
'/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages']

Aparentemente, esas no son todas las rutas requeridas porque no puedo ejecutar iPython.

$ ipython  
Traceback (most recent call last):  
  File "/usr/local/bin/ipython", line 5, in <module>  
  from pkg_resources import load_entry_point  
ImportError: No module named `pkg_resources`

Hice búsquedas en Google y realmente no puedo averiguar cómo instalar pkg_resourceso asegurarme de que esté en la ruta.

¿Qué debo hacer para solucionar este problema?

Respuestas:


73

[ACTUALIZAR] TL; DR pkg_resourceses proporcionado por Distribute o setuptools .

[ACTUALIZACIÓN 2] Como se anunció en PyCon 2013, los proyectos Distributey setuptoolsse han vuelto a fusionar. Distributeahora está en desuso y debería usar la nueva corriente setuptools. Prueba esto:

curl -O https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py
python ez_setup.py

O, mejor, use una corriente pipcomo interfaz de alto nivel y que usará setuptoolsdebajo de las cubiertas.

[Respuesta más larga para el problema específico de OP]:

No lo dice en su pregunta, pero supongo que actualizó desde Python proporcionado por Apple (2.5 en 10.5 o 2.6.1 en 10.6) o que actualizó desde Python 2.5 de python.org. En cualquiera de esos casos, el punto importante es que cada instancia de Python tiene su propia biblioteca, incluida su propia biblioteca de paquetes de sitio, que es donde se instalan los paquetes adicionales. (Y ninguno de ellos lo usa /usr/local/libde forma predeterminada, por cierto). Eso significa que necesitará instalar los paquetes adicionales que necesita para su nuevo python 2.6. La forma más sencilla de hacer esto es primero asegurarse de que el nuevo python2.6 aparezca primero en su búsqueda $PATH(es decir, escribirlo lo python2.6invoca como se esperaba); el instalador de python2.6 debería haber modificado su .bash_profilepara poner su directorio bin del marco al frente de $PATH. Luego instale easy_installusandosetuptools siguiendo las instrucciones allí. El pkg_resourcesmódulo también se instala automáticamente en este paso.

Luego use la versión recién instalada de easy_install(o pip) para instalar ipython.

easy_install ipython

o

pip install ipython

Debería instalarse automáticamente en la site-packagesubicación correcta para esa instancia de Python y debería estar listo para comenzar.


Me equivoqué cuando intenté instalar setuptools anoche. Me olvidé de terminar la instalación ejecutando el archivo .egg como si fuera un archivo de shell. $ sh setuptools-0.6c11-py2.6.egg Supongo que eso agregó la nueva ruta de Python en alguna parte.
BryanWheelock

NOTA: La respuesta real que resolvió este problema para mí fue la siguiente: consulte stackoverflow.com/a/10538341/293064
Jay Taylor

Actualicé un poco esta respuesta anterior para que sea más obvio que la solución es instalar Distributeo setuptools. Los pasos específicos estaban en los enlaces. La pregunta del OP cubrió otros elementos.
Ned Deily

Una nueva edición para reflejar la desaprobación de distributea favor de lo nuevo setuptoolsy mencionar pip.
Ned Deily

1
obteniendo python ez_setup.py File "ez_setup.py", line 1 <!DOCTYPE html> ^ SyntaxError: invalid syntax:(
hola 15

76

Encontré lo mismo ImportError. De alguna manera, el setuptoolspaquete se había eliminado en mi entorno de Python.

Para solucionar el problema, ejecute el script de instalación para setuptools:

curl https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py | python

Si tiene alguna versión de distribute, o cualquiera setuptoolspor debajo de 0.6, primero tendrá que desinstalarla. *

Consulte las instrucciones de instalación para obtener más detalles.


* Si ya tiene una que funciona distribute, setuptoolses más fácil actualizarla a la "envoltura de compatibilidad" que le cambia . Pero si las cosas ya están rotas, no intentes eso.


3
Esta es la forma correcta de hacerlo. Sin pkg_resources, easy_installes probable que también no trabajar (de modo easy_instally pipno será capaz de instalar setuptools).
Alex Churchill

Instalar Distribute o setuptools es, de hecho, lo que recomienda la respuesta aceptada. Actualicé un poco la respuesta original para que sea más obvia. Por cierto, es algo peligroso descargar e instalar algo desde una URL insegura como esa sin examinar primero el contenido del archivo.
Ned Deily

7

En caso de actualizar su python en mac os 10.7 y pkg_resources no funciona, la forma más sencilla de solucionarlo es simplemente reinstalar las herramientas de configuración como Ned mencionó anteriormente.

sudo pip install setuptools --upgrade
or sudo easy_install install setuptools --upgrade

3

En mi sistema (OSX 10.6) ese paquete está en

/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/pkg_resources.py

Espero que eso te ayude a descubrir si falta o simplemente no está en tu camino.


1

La razón puede deberse a que el módulo IPython no está en su PYTHONPATH.

Si descarga IPython y luego instala python setup.py

La configuración no agrega el módulo IPython a su ruta de Python. Es posible que desee agregarlo a su PYTHONPATH manualmente. Debería funcionar después de que lo hagas:

exportar PYTHONPATH = / pathtoIPython: $ PYTHONPATH

Agregue esta línea en su .bashrc o .profile para que sea permanente.


0

Me doy cuenta de que esto no está relacionado con OSX, pero en un sistema integrado (Beagle Bone Angstrom) tuve exactamente el mismo mensaje de error. La instalación de los siguientes paquetes de ipk lo solucionó.

opkg install python-setuptools
opkg install python-pip

0

Recibí este error en Ubuntu y lo siguiente funcionó para mí:

Se eliminaron los archivos binarios de Dropbox y se descargaron de nuevo ejecutando:

sudo rm -rf /var/lib/dropbox/.dropbox-dist
dropbox start -i

0

Me encontré con el mismo problema cuando estoy trabajando en un proyecto relacionado con la autopista.

1) Así que descargo el formulario setuptools.-0.9.8.tar.gz https://pypi.python.org/packages/source/s/setuptools/ y lo extraigo .

2) Luego obtengo el módulo pkg_resources y lo copio a la carpeta donde lo necesitaba. ** en mi caso, esa carpeta era C: \ Python27 \ Lib \ site-packages \ autobahn


0

En mi caso, python-pygmentsse perdió el paquete . Puedes arreglarlo por comando:

sudo apt-get install python-pygments

Si hay algún problema con pandoc. Debe instalar pandocy pandoc-citeproc.

sudo apt-get install pandoc pandoc-citeproc

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.