[PYTHON] Machen Sie Scrapy exe mit Pyinstaller

Überblick

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.

Umgebung

OS:Windows 10 Sprache: Python 3.7 Scrapy-Version: 1.7.3.

Annahme

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

Problem

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.

Lösungen

  1. 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.

  2. 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.

  1. Speichern Sie den in 1 erstellten Scrapy-Ordner im erstellten Ordner. \ Dist \ lauch_demo .

  2. Das Ausführen der exe-Datei funktioniert einwandfrei.

Verweise

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

Schließlich

Wenn Sie Fragen haben, lassen Sie es uns bitte wissen. Vielen Dank.

Recommended Posts

Machen Sie Scrapy exe mit Pyinstaller
Erstellen Sie einen Audio-Interface-Controller mit pyusb (2).
Erstellen Sie einen Audio-Interface-Controller mit pyusb (1).
Automatische Update-Methode von Python Pyinstaller exe
EXE die mit PyQt5 mit PyInstaller erstellte Anwendung
Erstellen einer exe-Datei mit Python PyInstaller: PC friert bei paralleler Verarbeitung ein
Starten Sie mit Scrapy neu
Stellen Sie ein Überwachungsgerät mit einem Infrarotsensor her
Bilden Sie Lambda-Schichten mit Lambda
Machen Sie eine Yuma mit Discord.py
Schaben mit kratzender Schale
Verstärkungslernen 37 Starten Sie automatisch mit Ataris Wrapper
So erstellen Sie einen HTTPS-Server mit Go / Gin
PyInstaller-Memorandum Konvertieren Sie Python [.py] in [.exe] mit 2 Zeilen
Erstellen Sie mit Python Pandas Py Installer ein CSV-Formatierungswerkzeug
Machen Sie eine Regenschirmerinnerung mit Raspberry Pi Zero W.
Probleme bei der Installation von Scrapy
Ich habe versucht, eine OCR-App mit PySimpleGUI zu erstellen
Ich kann ein Projekt mit PyWebView mit PyInstaller nicht in eine Exe verwandeln
Erstellen Sie Folien mit iPython
Erstellen Sie mit tkinter eine Anwendung mit cx_freeze zu einer ausführbaren Datei
Vorsichtsmaßnahmen bei der Eingabe von CSV mit Python und der Ausgabe an json, um exe zu erstellen
Machen Sie einen in die Klimaanlage integrierten Personal Computer "airpi" mit Raspberry Pi 3!
Importieren Sie Module zur Laufzeit dynamisch mit .exe, das mit pyinstaller --onefile gehärtet wurde
Erstellen Sie eine Umgebung mit virtualenv
Erstellen Sie eine MQTT Publisher-Box
Erstellen Sie eine API mit Django
Machen Sie mit Kivy SF-ähnliche Knöpfe
Festliches Scraping mit Python, Scrapy
Erstellen von GUI-Tools mit Pyinstaller
Lassen Sie uns ein Errbot-Plugin erstellen
Machen Sie es mit der Syntax einfach
Erstelle Puyopuyo AI mit Python
Einfaches Web-Scraping mit Scrapy
Machen Sie eine Lotterie mit Python
Machen Sie ein Feuer mit kdeplot
Erstellen Sie eine MQTT-Abonnentenbox
Machen Sie Slack Chatbot mit Errbot
So erhalten Sie das Verzeichnis, in dem die mit Pyinstaller erstellte EXE-Datei vorhanden ist
Wenn ich die exe-Datei mit pyinstaller ausführe, stürzt mein PC ab.
Erstellen Sie einen Effektor für Videokonferenzen mit Spout + OpenCV + dlib (Teil 1).
Konvertieren Sie in PyTorch geschriebenes Python-Skript mit PyInstaller in exe
Lösung, wenn beim Ausblenden des Konsolenbildschirms mit PyInstaller ein Fehler auftritt
Machen wir ein IoT-Shirt mit Lambda, Kinesis, Raspberry Pi [Teil 1]
Ich habe versucht, mit Python + OpenCV eine Bildähnlichkeitsfunktion zu erstellen