ImportError:使用Scrapy时无法导入名称替换实体错误



过去,我会通过编写
scrapy startproject some_project

最近,我克隆了一个有蜘蛛的存储库,现在当我导航到正确的位置和类型时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

我在谷歌上搜索了一下,试图看看"replace_entities"是怎么回事,但找不到任何信息。如有任何关于为什么会出现这些导入错误的帮助,以及关于如何修复这些错误的想法,我们将不胜感激。

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 

最新更新