【问题标题】:Using Python2 and scrapy ImportError: cannot import name suppress使用 Python2 和 scrapy ImportError: cannot import name suppress
【发布时间】:2021-09-18 03:52:25
【问题描述】:

您好,我正在尝试在 ubuntu/windows 机器上运行刮板。 我已经在使用 python2 时安装了 scrapy 版本 - Scrapy 1.8.0。 我可以创建一个项目,但是当我运行刮板时,会显示此错误。

Traceback (most recent call last):
  File "/home/ubuntu/.local/bin/scrapy", line 8, in <module>
    sys.exit(execute())
  File "/home/ubuntu/.local/lib/python2.7/site-packages/scrapy/cmdline.py", line 146, in execute
    _run_print_help(parser, _run_command, cmd, args, opts)
  File "/home/ubuntu/.local/lib/python2.7/site-packages/scrapy/cmdline.py", line 100, in _run_print_help
    func(*a, **kw)
  File "/home/ubuntu/.local/lib/python2.7/site-packages/scrapy/cmdline.py", line 154, in _run_command
    cmd.run(args, opts)
  File "/home/ubuntu/.local/lib/python2.7/site-packages/scrapy/commands/shell.py", line 68, in run
    crawler.engine = crawler._create_engine()
  File "/home/ubuntu/.local/lib/python2.7/site-packages/scrapy/crawler.py", line 111, in _create_engine
    return ExecutionEngine(self, lambda _: self.stop())
  File "/home/ubuntu/.local/lib/python2.7/site-packages/scrapy/core/engine.py", line 67, in __init__
    self.scheduler_cls = load_object(self.settings['SCHEDULER'])
  File "/home/ubuntu/.local/lib/python2.7/site-packages/scrapy/utils/misc.py", line 46, in load_object
    mod = import_module(module)
  File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)
  File "/home/ubuntu/.local/lib/python2.7/site-packages/scrapy/core/scheduler.py", line 7, in <module>
    from queuelib import PriorityQueue
  File "/home/ubuntu/.local/lib/python2.7/site-packages/queuelib/__init__.py", line 1, in <module>
    from queuelib.queue import FifoDiskQueue, LifoDiskQueue
  File "/home/ubuntu/.local/lib/python2.7/site-packages/queuelib/queue.py", line 7, in <module>
    from contextlib import suppress
ImportError: cannot import name suppress

谁能帮忙解决这个问题?

【问题讨论】:

    标签: python-2.7 ubuntu scrapy


    【解决方案1】:

    contextlib.suppress 函数支持来自Python 3.4,但您使用的是 Python 2.7。要解决此问题,请升级您的 python 版本。

    【讨论】:

      【解决方案2】:

      如果这对其他人有用,我的解决方案(也使用 python 2.7)是:

      pip uninstall attrs
      pip uninstall queuelib
      pip install queuelib==1.5.0
      pip install attrs
      

      【讨论】:

        猜你喜欢
        • 2015-09-07
        • 2015-02-27
        • 2013-04-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-10-03
        • 2019-07-20
        • 2016-05-16
        相关资源
        最近更新 更多