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理器的方法:
- 按照http://brew.sh/中的说明安装自制软件;
- 更新你的PATHvariables,说明应该在系统包之前使用自制软件包(如果你使用zsh作为默认shell,将.bashrc更改为.zshrc):
echo“export PATH = / usr / local / bin:/ usr / local / sbin:$ PATH”>>〜/ .bashrc
- 重新加载.bashrc以确保发生了更改:
源〜/ .bashrc
- 安装python:
brew安装python
- python的最新版本有pip捆绑在一起,所以你不需要单独安装它。 如果不是这种情况,请升级python:
酿造更新; 酿造升级python