2017-10-22 4 views
1

Versuchen, exe Datei von meinem Scrapy Projekt zu erstellen. Ich habe main.py Datei im Stammverzeichnis des Scrapy Projekt erstellt:PyInstaller ImportError: Kein Modul namens spiderloader

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() 

und schuf eine main.exe: pyinstaller --onefile main.py

Als ich main.exe führen Sie es aufwirft:

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 

ohne --onefile Versuchte mit das gleiche Ergebnis. Weißt du, was zu tun ist?

+0

können Sie Veröffentlichen Sie das Protokoll oder die Ausgabe des Pyinstaller-Aufrufs. Auf diese Weise können wir sehen, was pyinstaller macht, während es Ihre exe erstellt. – The4thIceman

+0

haben Sie von scrapy.spiderloader importiert SpiderLoader versuchen? – parik

+0

Wo? Es ist nicht in meinem Skript. Es ist scrapy (wahrscheinlich dynamisch) Import. –

Antwort

0

Ich benutze pyinstaller -F filename.py --hidden-Import spiderloader und dieser Fall nach dem Durchlauf in anderen Modul gesteckt wird zu so füge ich viele versteckte Import

Für mich diese Arbeit