ImportError: Ошибка при загрузке объекта 'scrap.middlewares.RandomUserAgentMiddleware': нет модуля с именем scrap.middlewares

У меня есть проект scrapy portia в ~/portia/slyd/data/projects/scrap, настроенный на использование scrap.middlewares.RandomUserAgentMiddleware в DOWNLOADER_MIDDLEWARES, RandomUserAgentMiddleware определено в ~/portia/slyd/data/projects/scrap/middlewares.py.

После развертывания проекта полученное яйцо не содержит middlewares.py, поэтому я получаю эту ошибку:

ImportError: Error loading object 'scrap.middlewares.RandomUserAgentMiddleware': No module named scrap.middlewares

Как я могу сказать, что scrapyd-deploy также использует пользовательские промежуточные программы?

Редактировать:

Мой settings.py такой: http://pastebin.com/8gFU3YEw

Я также пытался вручную включить middlewares.py в сгенерированное яйцо, но это не решает проблему, все та же ошибка.


person localhost    schedule 17.09.2014    source источник


Ответы (1)


Их нужно поместить в файл settings.py. Необходимо объявить переменную DOWNLOADER_MIDDLEWARES, содержащую список используемого пользовательского промежуточного программного обеспечения. Вот пример, который должен охватывать ваш случай:

DOWNLOADER_MIDDLEWARES = {
    'scrap.middlewares.RandomUserAgentMiddleware': 5,
}

Дополнительную информацию можно найти здесь, в официальной документации по scrapy.

person Bernardo Botella    schedule 17.09.2014