![](/img/trans.png)
[英]Mac OS X El Capitan - Scrapy/Python ImportError: cannot import name xmlrpc_client
[英]Scrapy throws ImportError: cannot import name 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上不允许的操作(禁用无根)
这是Mac OSX上Scrapy的一个已知问题。 您可以参考此链接 。
基本上,问题出在系统中的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时,我遇到了同样的问题。 经过大量的工作后,对我有用的解决方案是使用pip卸载六个:
sudo pip卸载六
然后通过easy_install重新安装六个
easy_install六
希望有效!
比降级Scrapy更好的是升级六个版本:
pip install --upgrade six scrapy
这将允许您使用Scrapy 1.0中的所有功能;)
我只是有同样的问题。 尝试这个:
sudo pip卸载scrapy
sudo pip install scrapy == 0.24.2
然后试一试
我相信OS X上最好的解决方案应该是“不要使用系统python”。 这将使生活更轻松。 此链接显示了如何执行此操作。
有一个已知的问题,阻止pip更新系统软件包。 必须解决此问题才能成功安装Scrapy及其依赖项。 以下是一些建议的解决方案:
(推荐)不要使用系统python,安装新的更新版本,该版本应与系统的其余部分不冲突。 使用自制程序包管理器的方法如下:
- 按照http://brew.sh/中的说明安装自制软件
- 更新您的PATH变量,以指出应在系统软件包之前使用自制软件包(如果将zsh用作默认外壳,则将.bashrc更改为.zshrc):
回声“导出路径= / usr / local / bin:/ usr / local / sbin:$ PATH” >>〜/ .bashrc
- 重新加载.bashrc以确保已进行更改:
来源〜/ .bashrc
- 安装python:
brew安装python
- 最新版本的python已捆绑了pip,因此您无需单独安装。 如果不是这种情况,请升级python:
酿造更新; 酿造升级python
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.