Зачем HttpCachedMiddleware нужен scrapy.cfg и как обойти эту проблему?
Я использую scrapyd-deploy
для сборки яйца и запускаю проект в scrapyd.
Когда задание запущено, я вижу из вывода журнала, что HttpCacheMiddleware отключен, потому что scrapy.cfg не найден.
2014-06-08 18:55:51-0700 [scrapy] ПРЕДУПРЕЖДЕНИЕ. Отключено HttpCacheMiddleware: невозможно найти файл scrapy.cfg для определения каталога данных проекта.
Я проверяю файл яйца, и scrapy.cfg действительно отсутствует, потому что файл яйца состоит только из файлов в каталоге проекта. Я могу ошибаться, но я думаю, что яйцо построено правильно.
foo/
|- project/
| |- __init__.py
| |- settings.py
| |- spiders/
| |- ...
|- scrapy.cfg
Покопавшись в коде, я думаю, что один из трех if-условий почему-то не работает в MiddlewareManager.
try:
mwcls = load_object(clspath)
if crawler and hasattr(mwcls, 'from_crawler'):
mw = mwcls.from_crawler(crawler)
elif hasattr(mwcls, 'from_settings'):
mw = mwcls.from_settings(settings)
else:
mw = mwcls()
middlewares.append(mw)
except NotConfigured, e:
if e.args:
clsname = clspath.split('.')[-1]
log.msg(format="Disabled %(clsname)s: %(eargs)s",
level=log.WARNING, clsname=clsname, eargs=e.args[0])