经过一段时间的Coding,实现了一个爬取网站信息的项目,在部署到服务器之前,需要进行打包发布 , 目标平台 Windows
使用pyinstallesr 进行发布安装 pyinstaller
pip install pyinstaller
使用命令打包文件
pyinstaller -D autorun.py 打包为文件夹发布 或者 pyinstaller -F autorun.py 打包为单exe文件发布. pyinstaller会增加如下两个文件夹 (ps:严格区分大小写, -d 或者-f 的话 它不甩你)
运行打包后的exe文件
然而把大象装冰箱,并不是理想的三步完成, 在打包 Scrapy 爬虫工具软件时,还需要额外的工作
已实测不可打包成单exe文件运行 ,所有必须使用 -D 命令 进行打包
在 .py文件中需要指明 该项目所有引用的包文件
需要先将 爬虫的其实文件中加入 引用的库 ,打包时会根据清单从现有环境中进行索取打包,需要的清单有
scrapy.crawler CrawlerProcess
scrapy.utils.project get_project_settings
urllib.robotparser
scrapy.spiderloader
scrapy.statscollectors
scrapy.logformatter
scrapy.dupefilters
scrapy.squeues
scrapy.extensions.spiderstate
scrapy.extensions.corestats
scrapy.extensions.telnet
scrapy.extensions.logstats
scrapy.extensions.memusage
scrapy.extensions.memdebug
scrapy.extensions.feedexport
scrapy.extensions.closespider
scrapy.extensions.debug
scrapy.extensions.httpcache
scrapy.extensions.statsmailer
scrapy.extensions.throttle
scrapy.core.scheduler
scrapy.core.engine
scrapy.core.scraper
scrapy.core.spidermw
scrapy.core.downloader
scrapy.downloadermiddlewares.stats
scrapy.downloadermiddlewares.httpcache
scrapy.downloadermiddlewares.cookies
scrapy.downloadermiddlewares.useragent
scrapy.downloadermiddlewares.httpproxy
scrapy.downloadermiddlewares.ajaxcrawl
scrapy.downloadermiddlewares.decompression
scrapy.downloadermiddlewares.defaultheaders
scrapy.downloadermiddlewares.downloadtimeout
scrapy.downloadermiddlewares.httpauth
scrapy.downloadermiddlewares.httpcompression
scrapy.downloadermiddlewares.redirect
scrapy.downloadermiddlewares.retry
scrapy.downloadermiddlewares.robotstxt
scrapy.spidermiddlewares.depth
scrapy.spidermiddlewares.httperror
scrapy.spidermiddlewares.offsite
scrapy.spidermiddlewares.referer
scrapy.spidermiddlewares.urllength
scrapy.pipelines
scrapy.core.downloader.handlers.http
scrapy.core.downloader.contextfactory
scrapy.core.downloader.handlers.ftp
scrapy.core.downloader.handlers.file
scrapy.core.downloader.handlers.datauri
scrapy.core.downloader.handlers.s3
time
dbwriter
增加上述引入后 ,重复进行第二步.
现在再解决打包后 出现找不到 Scrapy 的Version文件问题
此时需要去Scrapy 的安装目录下 找到对应的两个文件复制到 打包dist\[autorun]\的文件下. autorun为步骤2中的 .py文件名
Anaconda3\pkgs\scrapy-1.6.0-py37_0\Lib\site-packages\scrapy (使用的是Anaconda环境)
如此,便可大概率正常运行, 如果运行提示缺失Model , 就在 .py文件中 补充import 重复 第2 ,3 步
写在最后,为了快速复制 scrapy 的文件到 打包后的文件中 补充了解了 xcopy 使用
xcopy F:\PyWorkplace\scrapy F:\PyWorkplace\PyMaQuery\maSpiderDemo\trunk\maSpiderDemo\dist\autorun\scrapy/e /y /i