Créer un exe Scrapy avec Pyinstaller

Aperçu

J'ai pu le convertir en exe avec Pyinstaller, mais il s'est écrasé lorsque j'ai démarré le fichier exe. Maintenant que je sais comment le faire fonctionner parfaitement, notez-le.

environnement

OS:Windows 10 Langage: Python 3.7 version scrapy: 1.7.3.

supposition

Vous avez déjà créé une araignée scrapy et vous disposez d'un fichier script qui exécute le fichier scrapy.

La configuration suivante demo_scrapy/ ├── scrapy.cfg ├── lauch_demo.py ← Il s'agit du fichier script qui déplace le fichier scrapy └── demo_scrapy     ├── init.py     ├── pycache     ├── items.py     ├── middlewares.py     ├── pipelines.py     ├── settings.py     └── spiders         ├── init.py         ├── demo_spider.py         └── pycache

Contenu de 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

imprimer ("terminé")

problème

Ici, lorsque launch_demo.py est lancé comme d'habitude, cela fonctionne normalement, Cependant, le fichier exe ne fonctionne pas même s'il est converti en exe avec Pyinstaller.

Exécutez la méthode suivante.

Solution

  1. Créez un dossier scrapy à n'importe quel emplacement pour les fichiers VERSION et mime.types et enregistrez-le là. VERSION et mime.types C: \ Users \ nom d'utilisateur \ AppData \ Local \ Programs \ Python \ Python37-32 \ Lib \ site-packages \ scrapy Il est stocké au format.

  2. Ajoutez l'importation cachée. À l'invite de commande 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"

Éxécuter. Si vous obtenez "module not found XXX", ajoutez --hidden-import XXX.

  1. Stockez le dossier scrapy créé en 1 dans le dossier. \ Dist \ lauch_demo \ créé.

  2. L'exécution du fichier exe fonctionne correctement.

Les références

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

finalement

Si vous avez des questions, n'hésitez pas à nous le faire savoir. Merci beaucoup.

Recommended Posts

Créer un exe Scrapy avec Pyinstaller
Créer un contrôleur d'interface audio avec pyusb (2)
Créer un contrôleur d'interface audio avec pyusb (1)
Méthode de mise à jour automatique par python Pyinstaller exe
EXE l'application créée avec PyQt5 avec PyInstaller
Création d'un fichier exe avec Python PyInstaller: le PC se fige dans le traitement parallèle
Redémarrez avec Scrapy
Fabriquer un appareil de surveillance avec un capteur infrarouge
Créer des couches Lambda avec Lambda
Créez un Yuma avec Discord.py
Grattage avec coquille tremblante
Apprentissage par renforcement 37 Démarrez automatiquement avec l'enrubanneuse Atari
Comment créer un serveur HTTPS avec Go / Gin
Mémorandum PyInstaller Convertit Python [.py] en [.exe] avec 2 lignes
Créer un outil de formatage CSV avec Python Pandas Py Installer
Faire un rappel de parapluie avec Raspberry Pi Zero W
Problèmes lors de l'installation de Scrapy
J'ai essayé de créer une application OCR avec PySimpleGUI
Je ne peux pas transformer un projet utilisant PyWebView en un exe avec PyInstaller
Créer des diapositives avec iPython
Faire une application utilisant tkinter un fichier exécutable avec cx_freeze
Précautions lors de la saisie à partir de CSV avec Python et de la sortie vers json pour faire exe
Fabriquez un climatiseur intégré à un ordinateur personnel "airpi" avec Raspberry Pi 3!
Importez dynamiquement des modules lors de l'exécution avec .exe renforcé avec pyinstaller --onefile
Créer un environnement avec virtualenv
Créer une boîte de publication MQTT
Créer une API avec Django
Créez des boutons de type SF avec Kivy
Grattage festif avec Python, scrapy
Création d'outils GUI avec pyinstaller
Faisons un plugin Errbot
Rendre avec la syntaxe facile
Créez Puyopuyo AI avec Python
Grattage Web facile avec Scrapy
Faites une loterie avec Python
Faire un feu avec kdeplot
Créer une boîte d'abonné MQTT
Créer un chatbot Slack avec Errbot
Comment obtenir le répertoire où se trouve le EXE construit avec Pyinstaller
Lorsque j'exécute le fichier exe avec pyinstaller, mon PC se bloque.
Créez un effecteur pour la visioconférence avec Spout + OpenCV + dlib (Partie 1)
Convertir un script Python écrit dans PyTorch en exe avec PyInstaller
Solution lorsqu'une erreur se produit lors du masquage de l'écran de la console avec PyInstaller
Faisons une chemise IoT avec Lambda, Kinesis, Raspberry Pi [Partie 1]
J'ai essayé de créer une fonction de similitude d'image avec Python + OpenCV