2014-09-28 95 views
3

当在过去无法导入名replace_entities错误,我会写
scrapy startproject some_project导入错误:使用Scrapy

最近创建使用scrapy蜘蛛,我克隆的存储库有一个蜘蛛,而现在,当我浏览到正确的位置和类型 scrapy crawl some_spider -o output.csv -t csv
我得到一个导入错误:

Traceback (most recent call last): 
    File "/usr/local/bin/scrapy", line 3, in <module> 
    from scrapy.cmdline import execute 
    File "/usr/lib/pymodules/python2.7/scrapy/__init__.py", line 58, in <module> 
    from scrapy.selector import Selector 
    File "/usr/lib/pymodules/python2.7/scrapy/selector/__init__.py", line 4, in <module> 
    from scrapy.selector.unified import * 
    File "/usr/lib/pymodules/python2.7/scrapy/selector/unified.py", line 7, in <module> 
    from scrapy.utils.misc import extract_regex 
    File "/usr/lib/pymodules/python2.7/scrapy/utils/misc.py", line 8, in <module> 
    from w3lib.html import replace_entities 
ImportError: cannot import name replace_entities 

我用Google搜索周围,试图看看是怎么回事`replace_entities',但我找不到任何的形成。任何帮助,为什么这些进口错误发生和任何想法如何解决这将不胜感激。

+0

我想我知道哪些存储库已克隆:)哪个'w3lib'的版本和'Scrapy'并输出'点子freeze'说明了什么?谢谢。 – alecxe 2014-09-28 01:38:15

+0

哈哈,我们再见面!我有w3lib == 1.5和Scrapy == 0.24.4 – 2014-09-28 01:58:35

回答

2

w3libScrapy的依赖,从setup.py报价(0.24.4版本):

install_requires=[ 
    'Twisted>=10.0.0', 
    'w3lib>=1.8.0', 
    'queuelib', 
    'lxml', 
    'pyOpenSSL', 
    'cssselect>=0.9', 
    'six>=1.5.2', 
], 

正如你看到的,Scrapy要求w3lib是的1.8.0或以上版本。

的解决办法是升级w3lib包:

pip install --upgrade w3lib