2014-09-28 105 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