Ich konnte es mit Pyinstaller in exe konvertieren, aber es stürzte ab, als ich die exe-Datei startete. Jetzt, da ich weiß, wie es perfekt funktioniert, notieren Sie es sich.
OS:Windows 10 Sprache: Python 3.7 Scrapy-Version: 1.7.3.
Sie haben bereits eine Scrapy-Spinne erstellt und verfügen über eine Skriptdatei, in der die Scrapy-Datei ausgeführt wird.
Die folgende Konfiguration demo_scrapy/ ├── scrapy.cfg ├── lauch_demo.py ← Dies ist die Skriptdatei, mit der die Scrapy-Datei verschoben wird └── demo_scrapy ├── init.py ├── pycache ├── items.py ├── middlewares.py ├── pipelines.py ├── settings.py └── spiders ├── init.py ├── demo_spider.py └── pycache
Inhalt von lauch_demo.py import datetime import time from scrapy.spiderloader import SpiderLoader from scrapy.crawler import CrawlerProcess from scrapy.utils.project import get_project_settings
now = datetime.datetime.now() dt_now_date = now.strftime("%Y-%m-%d-%H%M%S") settings = get_project_settings()
settings.set('FEED_URI', 'demo' + '_' + dt_now_date + '.csv') process = CrawlerProcess(settings) process.crawl('demo_spider', domain='demo.com') process.start() # the script will block here until the crawling is finished
drucken ("abgeschlossen")
Wenn launch_demo.py wie gewohnt gestartet wird, funktioniert es hier normal: Die exe-Datei funktioniert jedoch nicht, selbst wenn sie mit Pyinstaller in exe konvertiert wird.
Führen Sie die folgende Methode aus.
Erstellen Sie an einem beliebigen Speicherort einen Scrapy-Ordner für die Dateien VERSION und mime.types und speichern Sie ihn dort. VERSION und mime.types C: \ Benutzer \ Benutzername \ AppData \ Local \ Programme \ Python \ Python37-32 \ Lib \ Site-Pakete \ Scrapy Es ist gespeichert in.
Hidden-Import hinzufügen. An der Eingabeaufforderung pyinstaller --hidden-import scrapy.spiderloader --hidden-import scrapy.statscollectors --hidden-import scrapy.logformatter --hidden-import scrapy.extensions --hidden-import scrapy.extensions.corestats --hidden-import scrapy.extensions.corestats --hidden-import scrapy.extensions.telnet --hidden-import scrapy.extensions.memusage --hidden-import scrapy.extensions.memdebug --hidden-import scrapy.extensions.closespider --hidden-import scrapy.extensions.feedexport --hidden-import scrapy.extensions.logstats --hidden-import scrapy.extensions.spiderstate --hidden-import scrapy.extensions.throttle --hidden-import scrapy.core.scheduler --hidden-import scrapy.squeues --hidden-import queuelib --hidden-import scrapy.core.downloader --hidden-import scrapy.downloadermiddlewares --hidden-import scrapy.downloadermiddlewares.robotstxt --hidden-import scrapy.downloadermiddlewares.httpauth --hidden-import scrapy.downloadermiddlewares.downloadtimeout --hidden-import scrapy.downloadermiddlewares.defaultheaders --hidden-import scrapy.downloadermiddlewares.useragent --hidden-import scrapy.downloadermiddlewares.retry --hidden-import scrapy.downloadermiddlewares.ajaxcrawl --hidden-import scrapy.downloadermiddlewares.redirect --hidden-import scrapy.downloadermiddlewares.httpcompression --hidden-import scrapy.downloadermiddlewares.redirect --hidden-import scrapy.downloadermiddlewares.cookies --hidden-import scrapy.downloadermiddlewares.httpproxy --hidden-import scrapy.downloadermiddlewares.stats --hidden-import scrapy.downloadermiddlewares.httpcache --hidden-import scrapy.spidermiddlewares --hidden-import scrapy.spidermiddlewares.httperror --hidden-import scrapy.spidermiddlewares.offsite --hidden-import scrapy.spidermiddlewares.referer --hidden-import scrapy.spidermiddlewares.urllength --hidden-import scrapy.spidermiddlewares.depth --hidden-import scrapy.pipelines --hidden-import scrapy.dupefilters --hidden-import scrapy.core.downloader.handlers.datauri --hidden-import scrapy.core.downloader.handlers.file --hidden-import scrapy.core.downloader.handlers.http --hidden-import scrapy.core.downloader.handlers.s3 --hidden-import scrapy.core.downloader.handlers.ftp --hidden-import scrapy.core.downloader.webclient --hidden-import scrapy.core.downloader.contextfactory "C:/path/to/launch_demo.py"
Ausführen. Wenn Sie "Modul nicht gefunden XXX" erhalten, fügen Sie --hidden-import XXX hinzu.
Speichern Sie den in 1 erstellten Scrapy-Ordner im erstellten Ordner. \ Dist \ lauch_demo .
Das Ausführen der exe-Datei funktioniert einwandfrei.
How to create a single executable file in windows 10 with scrapy and pyinstaller? https://stackoverflow.com/questions/55331478/how-to-create-a-single-executable-file-in-windows-10-with-scrapy-and-pyinstaller
Pyinstaller scrapy error: https://stackoverflow.com/questions/25557693/pyinstaller-scrapy-error
Wenn Sie Fragen haben, lassen Sie es uns bitte wissen. Vielen Dank.