Scrapy lanza ImportError: no se puede importar el nombre xmlrpc_client

Después de instalar Scrapy a través de pip, y tener Python 2.7.10 :

 scrapy Traceback (most recent call last): File "/usr/local/bin/scrapy", line 7, in  from scrapy.cmdline import execute File "/Library/Python/2.7/site-packages/scrapy/__init__.py", line 48, in  from scrapy.spiders import Spider File "/Library/Python/2.7/site-packages/scrapy/spiders/__init__.py", line 10, in  from scrapy.http import Request File "/Library/Python/2.7/site-packages/scrapy/http/__init__.py", line 12, in  from scrapy.http.request.rpc import XmlRpcRequest File "/Library/Python/2.7/site-packages/scrapy/http/request/rpc.py", line 7, in  from six.moves import xmlrpc_client as xmlrpclib ImportError: cannot import name xmlrpc_client 

Pero puedo importar módulo:

 Python 2.7.10 (default, Jun 10 2015, 19:42:47) [GCC 4.2.1 Compatible Apple LLVM 6.1.0 (clang-602.0.53)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> import scrapy >>> 

¿Que esta pasando?

Acabo de solucionar este problema en mi OS X.

Por favor haga una copia de seguridad de sus archivos primero.

 sudo rm -rf /Library/Python/2.7/site-packages/six* sudo rm -rf /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/six* sudo pip install six 

Scrapy 1.0.0 está listo para funcionar.


Si encuentra un error rm: /System/Library/... Operation not permitted

Por favor, intente deshabilitar la protección de integridad del sistema
Consulte Operación no permitida cuando se encuentre en la raíz El Capitán (deshabilitado sin raíz)

Este es un problema conocido en Mac OSX para Scrapy. Puedes consultar este enlace .

Básicamente, el problema es con PYTHONPATH en su sistema. Para resolver el problema, cambie el PYTHONPATH actual para que apunte a la versión más nueva o ninguna de Mac OSX de Python. Antes de ejecutar Scrapy, intente:

export PYTHONPATH=/Library/Python/2.7/site-packages:$PYTHONPATH

Si eso funcionó, puedes cambiar el archivo .bashrc de forma permanente:

echo "export PYTHONPATH=/Library/Python/2.7/site-packages:$PYTHONPATH" >> ~/.bashrc

Si nada de esto funciona, eche un vistazo al enlace de arriba.

Tuve el mismo problema exacto al actualizar a Scrapy 1.0. Después de numerosos trabajos, la solución que funcionó para mí fue desinstalar seis con pip:

sudo pip desinstalar seis

luego reinstalar seis vía easy_install

fácil_instalar seis

Espero que funcione!

Mejor que degradar a Scrapy es actualizar tu versión de seis:

 pip install --upgrade six scrapy 

Esto te permitirá usar todas las golosinas de Scrapy 1.0;)

Acabo de tener el mismo problema. Prueba esto:

sudo pip desinstalar scrapy

sudo pip install scrapy == 0.24.2

Entonces dale una oportunidad

Creo que la mejor solución en OS X debería ser “No usar python del sistema”. Hará la vida más fácil. Este enlace muestra cómo hacer esto.

Hay un problema conocido que evita que pip actualice los paquetes del sistema. Esto debe ser dirigido para instalar con éxito Scrapy y sus dependencias. Aquí hay algunas soluciones propuestas:

(Recomendado) No use python del sistema, instale una versión nueva y actualizada que no entre en conflicto con el rest de su sistema. Aquí se explica cómo hacerlo utilizando el gestor de paquetes homebrew:

  1. Instale homebrew siguiendo las instrucciones en http://brew.sh/
  2. Actualice su variable PATH para indicar que los paquetes homebrew se deben usar antes que los paquetes del sistema (cambie .bashrc a .zshrc de forma acorde si está usando zsh como shell predeterminado):

echo “export PATH = / usr / local / bin: / usr / local / sbin: $ PATH” >> ~ / .bashrc

  1. Vuelva a cargar .bashrc para asegurarse de que los cambios hayan tenido lugar:

fuente ~ / .bashrc

  1. Instala python:

brew instalar python

  1. Las últimas versiones de python se han empaquetado con ellos para que no tenga que instalarlo por separado. Si este no es el caso, actualiza python:

actualización de cerveza preparar python de actualización