instalar - scrapy python library
Scrapy lanza ImportError: no se puede importar el nombre xmlrpc_client (6)
Acabo de solucionar este problema en mi OS X.
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
Intente desactivar la protección de integridad del sistema
Ver Operación no permitida cuando en la raíz El capitan (rootless deshabilitado)
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 <module>
from scrapy.cmdline import execute
File "/Library/Python/2.7/site-packages/scrapy/__init__.py", line 48,
in <module>
from scrapy.spiders import Spider
File "/Library/Python/2.7/site-packages/scrapy/spiders/__init__.py",
line 10, in <module>
from scrapy.http import Request
File "/Library/Python/2.7/site-packages/scrapy/http/__init__.py", line
12, in <module>
from scrapy.http.request.rpc import XmlRpcRequest
File "/Library/Python/2.7/site-packages/scrapy/http/request/rpc.py",
line 7, in <module>
from six.moves import xmlrpc_client as xmlrpclib
ImportError: cannot import name xmlrpc_client
Pero puedo importar el 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?
Creo que la mejor solución para 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 impide que pip actualice los paquetes del sistema. Esto debe abordarse para instalar con éxito Scrapy y sus dependencias. Aquí hay algunas soluciones propuestas:
(Recomendado) No use el sistema python, instale una nueva versión actualizada que no entre en conflicto con el resto de su sistema. Aquí le mostramos cómo hacerlo usando el administrador de paquetes homebrew:
- Instale homebrew siguiendo las instrucciones en http://brew.sh/
- Actualice su variable PATH para indicar que los paquetes homebrew se deben usar antes de los paquetes del sistema (Cambie .bashrc a .zshrc de forma concordante si está usando zsh como shell predeterminado):
echo "export PATH = / usr / local / bin: / usr / local / sbin: $ PATH" >> ~ / .bashrc
- Recargue .bashrc para asegurarse de que los cambios hayan tenido lugar:
fuente ~ / .bashrc
- Instalar Python:
brew instalar python
- Las versiones más recientes de python tienen un paquete con ellos, por lo que no será necesario instalarlo por separado. Si este no es el caso, actualice Python:
actualización de cerveza; brew actualización de python
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 la PYTHONPATH actual para que apunte a la versión de Python de Mac OSX más nueva o inexistente. Antes de ejecutar Scrapy, intente:
export PYTHONPATH=/Library/Python/2.7/site-packages:$PYTHONPATH
Si eso funcionó, puedes cambiar el archivo .bashrc permanentemente:
echo "export PYTHONPATH=/Library/Python/2.7/site-packages:$PYTHONPATH" >> ~/.bashrc
Si nada de esto funciona, eche un vistazo al enlace de arriba.
Mejor que degradar Scrapy es actualizar tu versión de seis:
pip install --upgrade six scrapy
Esto le permitirá usar todas las cosas buenas de Scrapy 1.0;)
Solo tuve el mismo problema. Prueba esto:
sudo pip uninstall scrapy
sudo pip install scrapy == 0.24.2
Entonces pruébalo
Tuve el mismo problema exacto al actualizar a Scrapy 1.0. Después de numerosas reparaciones, la solución que funcionó para mí fue desinstalar seis con pip:
sudo pip desinstalar seis
luego reinstalar seis vía easy_install
easy_install six
Espero que eso funcione!