私はScrapyプロジェクトからexeファイルを作成しようとしています。エラーを避けるために数十の隠れたインポートを追加しなければなりませんでしたが、現在はImportError: No module named pipelines
を取得しており、何をすべきかわかりません。ImportError:No pipeline - Scrapy/PyInstaller
bot/
engine_bot/
engine_bot/
spiders/
__init__.py
main_spider.py
__init__.py
items.py
middlewares.py
pipelines.py
settings.py
utils.py
__init__.py
helper.py
main.py
__init__.py
Main.py:
from scrapy.crawler import CrawlerProcess
from engine_bot.engine_bot.spiders.main_spider import MainSpider
if __name__ == '__main__':
process = CrawlerProcess({'BOT_NAME':'engine_bot',
'SPIDER_MODULES':['engine_bot.engine_bot.spiders'],
'NEWSPIDER_MODULE':'engine_bot.engine_bot.spiders',
'ROBOTSTXT_OBEY':False,
'DOWNLOAD_DELAY':0.20,
'LOG_FILE':'scrapy.log',
'LOG_LEVEL':'DEBUG',
'ITEM_PIPELINES':{
'engine_bot.engine_bot.pipelines.XmlExportPipeline': 300,
}
})
process.crawl(MainSpider)
process.start()
celery.log:
2017-11-03 14:01:47 [twisted] CRITICAL: Unhandled error in Deferred:
2017-11-03 14:01:47 [twisted] CRITICAL:
Traceback (most recent call last):
File "site-packages\twisted\internet\defer.py", line 1386, in _inlineCallbacks
File "site-packages\scrapy\crawler.py", line 95, in crawl
File "site-packages\scrapy\crawler.py", line 77, in crawl
File "site-packages\scrapy\crawler.py", line 102, in _create_engine
File "site-packages\scrapy\core\engine.py", line 70, in __init__
File "site-packages\scrapy\core\scraper.py", line 71, in __init__
File "site-packages\scrapy\middleware.py", line 58, in from_crawler
File "site-packages\scrapy\middleware.py", line 34, in from_settings
File "site-packages\scrapy\utils\misc.py", line 44, in load_object
File "importlib\__init__.py", line 37, in import_module
ImportError: No module named pipelines
pyInstallerのCMD(隠された輸入品の多くは、scrapy.pipelinesを追加しようとしました)
pyinstaller main.py --hidden-import scrapy.spiderloader --hidden-import scrapy.statscollectors --hidden-import scrapy.logformatter --hidden-import scrapy.extensions.closespider
--hidden-import scrapy.extensions.feedexport --hidden-import scrapy.extensions.memdebug --hidden-import scrapy.statscollectors --hidden-import scrapy.logformatter --hidden-import scrapy.extensions.closespider --hidden-import scrapy.extensions.feedexport --hidden-import scrapy.extensions.logstats --hidden-import scrapy.spiderloader --hidden-import scrapy.statscollectors --hidden-import scrapy.logformatter --hidden-import scrapy.extensions.closespider --hidden-import scrapy.extensions.feedexport --hidden-import scrapy.spiderloader --hidden-import scrapy.statscollectors --hidden-import scrapy.logformatter --hidden-import scrapy.extensions.closespider --hidden-import scrapy.extensions.feedexport --hidden-import scrapy.extensions.telnet --hidden-import scrapy.spiderloader --hidden-import scrapy.statscollectors --hidden-import scrapy.logformatter --hidden-import scrapy.extensions.closespider --hidden-import scrapy.extensions.feedexport --hidden-import scrapy.extensions.memusage --hidden-import scrapy.spiderloader --hidden-import scrapy.statscollectors --hidden-import scrapy.logformatter --hidden-import scrapy.extensions.closespider --hidden-import scrapy.extensions.feedexport --hidden-import scrapy.extensions.logstats --hidden-import scrapy.spiderloader --hidden-import scrapy.statscollectors --hidden-import scrapy.logformatter --hidden-import scrapy.extensions.closespider --hidden-import scrapy.extensions.feedexport --hidden-import scrapy.spiderloader --hidden-import scrapy.statscollectors --hidden-import scrapy.logformatter --hidden-import scrapy.extensions.closespider --hidden-import scrapy.extensions.corestats --hidden-import scrapy.extensions.spiderstate --hidden-import scrapy.extensions.throttle --hidden-import scrapy.core.scheduler --hidden-import scrapy.core.downloader --hidden-import scrapy.downloadermiddlewares.robotstxt --hidden-import scrapy.downloadermiddlewares.httpauth --hidden-import scrapy.downloadermiddlewares.downloadtimeout --hidden-import scrapy.downloadermiddlewares.useragent --hidden-import scrapy.downloadermiddlewares.defaultheaders --hidden-import scrapy.downloadermiddlewares.ajaxcrawl --hidden-import scrapy.downloadermiddlewares.retry --hidden-import scrapy.downloadermiddlewares.redirect --hidden-import scrapy.downloadermiddlewares.cookies --hidden-import scrapy.downloadermiddlewares.httpcompression --hidden-import scrapy.downloadermiddlewares.httpproxy --hidden-import scrapy.downloadermiddlewares.httpcache --hidden-import scrapy.downloadermiddlewares.stats --hidden-import scrapy.downloadermiddlewares.chunked --hidden-import scrapy.downloadermiddlewares.decompression --hidden-import scrapy.downloadermiddlewares.httperror --hidden-import scrapy.downloadermiddlewares.stats --hidden-import scrapy.downloadermiddlewares.stats --hidden-import scrapy.spidermiddlewares.depth --hidden-import scrapy.spidermiddlewares.httperror --hidden-import scrapy.spidermiddlewares.offsite --hidden-import scrapy.spidermiddlewares.referer --hidden-import scrapy.spidermiddlewares.urllength --hidden-import scrapy.pipelines --hidden-import engine_bot.pipelines
私は本当に何をすべきか、アドバイスはないのですか?
に
engine_bot
と改名参照してください。 main.pyはbot_dirではなくengine_botにあります。 –ええ、そうですが、このモジュールはScrapyによって読み込まれ、設定から読み込みます。私はこれがプロジェクトディレクトリに対して相対的であるべきだと考えました。しかし明らかにそうではありません。 –