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.
OS:Windows 10 Langage: Python 3.7 version scrapy: 1.7.3.
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é")
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.
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.
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.
Stockez le dossier scrapy créé en 1 dans le dossier. \ Dist \ lauch_demo \ créé.
L'exécution du fichier exe fonctionne correctement.
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
Si vous avez des questions, n'hésitez pas à nous le faire savoir. Merci beaucoup.