搜尋

首頁  >  問答  >  主體

python - scrapy无法初始化项目

在交互环境


import scrapy    # 成功

但是在终端 scrapy 新建项目就出错了

Traceback (most recent call last):
  File "/usr/local/bin/scrapy", line 7, in <module>
    from scrapy.cmdline import execute
  File "/usr/local/lib/python2.7/dist-packages/scrapy/cmdline.py", line 9, in <module>
    from scrapy.crawler import CrawlerProcess
  File "/usr/local/lib/python2.7/dist-packages/scrapy/crawler.py", line 15, in <module>
    from scrapy.signalmanager import SignalManager
  File "/usr/local/lib/python2.7/dist-packages/scrapy/signalmanager.py", line 2, in <module>
    from pydispatch import dispatcher
ImportError: No module named pydispatch

可是, pydispatch包已经有了呀!

$ pip install --upgrade pydispatch

Requirement already up-to-date: pydispatch in /usr/local/lib/python2.7/dist-packages
Requirement already up-to-date: colorama>=0.2.7 in /usr/local/lib/python2.7/dist-packages (from pydispatch)
Requirement already up-to-date: six>=1.5.2 in /usr/local/lib/python2.7/dist-packages (from pydispatch)
PHPzPHPz2894 天前420

全部回覆(3)我來回復

  • 阿神

    阿神2017-04-17 18:02:50

    是否環境搭建的有問題?
    在你出問題的程式碼中check一下安裝包有沒有:

    >>> import pip
    >>> installed_packages = pip.get_installed_distributions()
    >>> installed_packages_list = sorted(["%s==%s" % (i.key, i.version)
    ...      for i in installed_packages])
    >>> print(installed_packages_list)

    方法取自:
    http://stackoverflow.com/questions/739993/how-can-i-get-a-list-of-locally-installed-python-modules

    回覆
    0
  • PHPz

    PHPz2017-04-17 18:02:50

    我查了下Scrapy的 Release notes,發現

    The previously bundled scrapy.xlib.pydispatch library was deprecated and replaced by pydispatcher.

    也就是說最新版本的scrapy是沒有用到pydispatch 模組的,用的是pydispatcher 模組
    所以可能你用的不是最新的scrapy?
    解決方法的話,我建議你用virtualenv搭建一個獨立的python環境,在這個環境下重新安裝最新的scrapy.
    或直接在系統裡重新安裝scrapy

    回覆
    0
  • 高洛峰

    高洛峰2017-04-17 18:02:50

    pip 安裝 PyDispatcher

    回覆
    0
  • 取消回覆