繁体   English   中英

Scrapy抛出ImportError:无法导入名称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,安装新的更新版本,该版本应与系统的其余部分不冲突。 使用自制程序包管理器的方法如下:

  1. 按照http://brew.sh/中的说明安装自制软件
  2. 更新您的PATH变量,以指出应在系统软件包之前使用自制软件包(如果将zsh用作默认外壳,则将.bashrc更改为.zshrc):

回声“导出路径= / usr / local / bin:/ usr / local / sbin:$ PATH” >>〜/ .bashrc

  1. 重新加载.bashrc以确保已进行更改:

来源〜/ .bashrc

  1. 安装python:

brew安装python

  1. 最新版本的python已捆绑了pip,因此您无需单独安装。 如果不是这种情况,请升级python:

酿造更新; 酿造升级python

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM