2016-06-19 6 views
0

Python 3でScrapyを使用しようとすると、次のエラーが発生します。 私はUbuntu 16.04を使用していて、python3-twistedをインストールしても問題は解決しませんでした。Python 3でScrapyを使用しているときに歪んだインポートエラー

File "/home/fran/.local/lib/python3.5/site-packages/scrapy/crawler.py", line 150, in crawl 
    crawler = self._create_crawler(crawler_or_spidercls) 
    File "/home/fran/.local/lib/python3.5/site-packages/scrapy/crawler.py", line 166, in _create_crawler 
    return Crawler(spidercls, self.settings) 
    File "/home/fran/.local/lib/python3.5/site-packages/scrapy/crawler.py", line 46, in __init__ 
    self.extensions = ExtensionManager.from_crawler(self) 
    File "/home/fran/.local/lib/python3.5/site-packages/scrapy/middleware.py", line 56, in from_crawler 
    return cls.from_settings(crawler.settings, crawler) 
    File "/home/fran/.local/lib/python3.5/site-packages/scrapy/middleware.py", line 32, in from_settings 
    mwcls = load_object(clspath) 
    File "/home/fran/.local/lib/python3.5/site-packages/scrapy/utils/misc.py", line 44, in load_object 
    mod = import_module(module) 
    File "/usr/lib/python3.5/importlib/__init__.py", line 126, in import_module 
    return _bootstrap._gcd_import(name[level:], package, level) 
    File "<frozen importlib._bootstrap>", line 986, in _gcd_import 
    File "<frozen importlib._bootstrap>", line 969, in _find_and_load 
    File "<frozen importlib._bootstrap>", line 958, in _find_and_load_unlocked 
    File "<frozen importlib._bootstrap>", line 673, in _load_unlocked 
    File "<frozen importlib._bootstrap_external>", line 662, in exec_module 
    File "<frozen importlib._bootstrap>", line 222, in _call_with_frames_removed 
    File "/home/fran/.local/lib/python3.5/site-packages/scrapy/extensions/memusage.py", line 16, in <module> 
    from scrapy.mail import MailSender 
    File "/home/fran/.local/lib/python3.5/site-packages/scrapy/mail.py", line 23, in <module> 
    from twisted.mail.smtp import ESMTPSenderFactory 
ImportError: No module named 'twisted.mail.smtp' 
+0

たぶんツイスト '須藤はapt-getをインストールしようpython-twisをインストールするted' –

+0

また、成功していないと試しました – FranGoitia

+0

@FranGoitia、どの治療のバージョンを使用していますか? Scrapy <= 1.0を使用しているようですが、Python3と互換性がありません。この行23 ['from twisted.mail.smtp import ESMTPSenderFactory'](https://github.com/scrapy/scrapy/blob/1.0/scrapy/mail.py)は[Scrapy 1.1で動かされました](https:// github.com/scrapy/scrapy/blob/1.1/scrapy/mail.py)。 Scrapy 1.1にアップグレードしてください –

答えて

4

ScrapyのPythonの3のサポートはベータ段階にまだあるので、それはあなたが修正するために何を行うことができそうだ

をサポートしていません

送信する電子メール(release notesによります)この。

+0

私は電子メールを送信する必要はありません。この機能がロードされず、このモジュールがインポートされないように、settings.pyで変更できるものはありますか? – FranGoitia

+1

'scrapy.extensions.memusage.MemoryUsage'拡張を有効にしましたか?もしそうなら、 'EXTENSIONS'ディクテーションで削除してください。また、私は、この拡張機能のインポートに失敗すると、[メールはデフォルトでは無効になっています](http://doc.scrapy.org/en/latest/topics/settings.html?#memusage-notify-mail )を設定します。 –

+0

メール通知を必要としない場合、 'scrapy.extensions.memusage.MemoryUsage'はPython 3とScrapy 1.1で動作します。 Twistedで非Python3でサポートされているSMTPのインポートは、Scrapy 1.1とScrapy 1.0で必要に応じてインポートされます(https://github.com/scrapy/scrapy/blob/1.1/scrapy/mail.py#L108)。 –

3

Scrapyは、それはそれはまだ​​モジュールの移植されていないねじれの制限、だPythonの3

でメールを送信をサポートしていません!
(残念ながら、リクエストがを保留されているプル)

を参照してください:

  1. Twisted #8770

  2. [#8770] Port twisted.mail.smtp to Python 3 #509

+1

There PRですが、レビューの対象にならないため、多くのテストカバレッジが不足しています。誰かがステップアップして開発を完了する必要があります。 –

関連する問題