Scrapy引发ImportError:无法导入名称xmlrpc_client

通过pip安装Scrapy后,使用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 

但是我可以导入模块:

 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 >>> 

这是怎么回事?

我刚刚解决了这个问题在我的OS X.

请先备份你的文件。

 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已经准备就绪。


如果遇到错误rm: /System/Library/... Operation not permitted

请尝试禁用系统完整性保护
当在根El capitan(无根的禁用)上查看操作不允许

这是Scrapy Mac OSX上的一个已知问题。 你可以参考这个链接 。

基本上问题是在你的系统中的PYTHONPATH。 要解决这个问题,请将当前的PYTHONPATH更改为指向较新的或者没有Mac OSX版本的Python。 在运行Scrapy之前,请尝试:

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

如果工作,你可以永久地改变.bashrc文件:

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

如果这些都不起作用,请看上面的链接。

升级到Scrapy 1.0时,我遇到了同样的问题。 经过无数次的工作解决scheme,为我工作是卸载六与点:

sudo pip卸载六

然后通过easy_install重新安装六个

easy_install六

希望工程!

比降级Scrapy更好的是升级你的六个版本:

 pip install --upgrade six scrapy 

这将允许您使用Scrapy 1.0的所有好东西;)

我只是有同样的问题。 尝试这个:

sudo pip卸载scrapy

sudo pip安装scrapy == 0.24.2

然后给它一个镜头

我相信在OS X上的最佳解决scheme应该是“不要使用系统python”。 这将使生活更轻松。 此链接显示如何做到这一点。

有一个已知的问题,防止点子更新系统包。 这必须解决成功安装Scrapy及其依赖项。 以下是一些build议的解决scheme

(推荐)不要使用系统python,安装一个新的,更新的版本,不会与其他系统冲突。 以下是使用自制软件包pipe理器的方法:

  1. 按照http://brew.sh/中的说明安装自制软件;
  2. 更新你的PATHvariables,说明应该在系统包之前使用自制软件包(如果你使用zsh作为默认shell,将.bashrc更改为.zshrc):

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

  1. 重新加载.bashrc以确保发生了更改:

源〜/ .bashrc

  1. 安装python:

brew安装python

  1. python的最新版本有pip捆绑在一起,所以你不需要单独安装它。 如果不是这种情况,请升级python:

酿造更新; 酿造升级python