尝试从我的exe
项目创建Scrapy
文件。我在main.py
项目的根目录中创建了Scrapy
文件:
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':'INFO',
'ITEM_PIPELINES':{
'engine_bot.engine_bot.pipelines.XmlExportPipeline': 300,
}
})
process.crawl(MainSpider)
process.start()
并创建了main.exe
:pyinstaller --onefile main.py
当我运行main.exe
时,它会加注:
Traceback (most recent call last):
File "bot\main.py", line 14, in <module>
File "site-packages\scrapy\crawler.py", line 243, in __init__
File "site-packages\scrapy\crawler.py", line 134, in __init__
File "site-packages\scrapy\crawler.py", line 320, in _get_spider_loader
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 spiderloader
[10280] Failed to execute script main
在没有--onefile的情况下尝试使用相同的结果。你知道该怎么办吗?
答案 0 :(得分:0)
我使用pyinstaller -F filename.py --hidden-import spiderloader
通过后,这个案子也会卡在其他模块中,
所以我添加了许多隐藏的导入。
对我来说这项工作。