Я пытаюсь запустить паук Scrapy
на heroku
. Вот мой requirements.txt
:Scrapy + heroku: нет модуля с именем «twisted mail»
Flask==0.10.1
gunicorn==0.17.2
requests==2.4.3
python-dateutil==2.2
cffi==1.5.0
Scrapy==1.0.5
Twisted==15.5.0
И когда я толкнул приложение heroku
, журналы сказал, что Twisted
был успешно установлен. Некоторые, где в коде у меня есть:
import scrapy
from scrapy.crawler import CrawlerProcess
def crawl():
process = CrawlerProcess({
'USER_AGENT': 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)'
})
process.crawl(WallpaperSpider)
process.start()
return wallpaper_url
Но я получаю следующее сообщение об ошибке, когда я пытаюсь запустить этот код на heroku
:
File "/app/.heroku/python/lib/python3.4/site-packages/scrapy/crawler.py", line 46, in init
File "/app/netimen.py", line 141, in wallpaper
ImportError: No module named 'twisted.mail'
Что я здесь делаю неправильно? Я никогда не импортирую twisted.mail
напрямую. Кажется, он импортирован scrapy
Вы используете Python 3.4, а перекрученная почта недоступна в Python 3 .. Какую версию Scrapy вы используете? Scrapy на Python3 не поддерживает отправку электронной почты (возможно, никогда не будет). Scrapy 1.1rc1 импортирует 'twisted.mail' [в' scrapy.mail.MailSender :: _ sendmail'] (https://github.com/scrapy/scrapy/blob/1.1.0rc1/scrapy/mail.py#L105). Это должно произойти только при отправке почты. Несколько расширений могут отправлять почту: 'scrapy.extensions.statsmailer.StatsMailer' и' scrapy.extensions.memusage.MemoryUsage'. Вы используете любой из них? –
Я использую scrapy '1.0.5' и не хочу отправлять какие-либо письма. Все эти импровизации происходят во время сеанса терапии. – netimen
Видел ваш ответ. Действительно, scrapy 1.0.5 не поддерживается на Python 3. Scrapy 1.1 является первой версией, поддерживающей Python 3 (только 1.1rc1 доступен, когда я пишу это) –