在交互环境
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)
환경설정에 문제가 있는 걸까요?
으아악문제가 있는 코드에 설치 패키지가 있는지 확인하세요.
출처:
http://stackoverflow.com/questions/739993/how-can-i-get-a-list-of-locally-installed-python-modules
Scrapy의 릴리스 노트를 확인하고 찾았습니다
즉, 최신 버전의 scrapy는 pydispatch 모듈을 사용하지 않고 pydispatcher 모듈을 사용한다는 것입니다
그럼 최신 scrapy를 사용하고 있지 않으신가요?
해결책으로 virtualenv를 사용하는 것이 좋습니다. 하나의 독립적인 Python 환경을 구축하려면 이 환경에 최신 scrapy를 다시 설치하세요.
또는 시스템에 직접 scrapy를 다시 설치하세요
PyDispatcher를 pip 설치