打包scrapy果然好痛苦啊!!!
坑1:
不要用pycharm 下载PyInstaller包 ,不然在cmd里就算你设定好了环境变量,也是调用不了,最后我是用pip 删除再安装解决的!
坑2:
无论修改什么,还是会报出AttributeError: 'str' object has no attribute 'items'的问题,发现原来是setuptools比较老,方法是:
更新一下 pip install --upgrade setuptools
坑3:
如果用系统的cmd运行打包后的exe,有可能会莫名其妙的报错:
import scrapy.downloadermiddlewares.chunked
不能import 这个模块
后面我用pycharm的 Terminal 跟直接运行exe,虽然也有报错,但能运行!
发现:
1.很多教程启动scrapy,都是:
from douban.spiders.spider import DoubanSpider
from scrapy.crawler import CrawlerProcess
from scrapy.utils.project import get_project_settings
process = CrawlerProcess(get_project_settings())
process.crawl(DoubanSpider)
process.start()
后来我试了下,还可以这样启动:
from subprocess import call
call("scrapy crawl douban",shell=True)
并没有报错,明显更简单啦!!!

博主在使用PyInstaller打包Scrapy项目时遇到了诸多问题,包括环境配置、错误处理和打包方式等。坑1指出不要在PyCharm中安装PyInstaller,而应在CMD中用pip进行。坑2提到需升级setuptools以解决AttributeError。坑3讨论了在不同环境下运行exe的兼容性问题。通过实验,博主发现可以简化启动方式,并建议使用CrawlerProcess(get_project_settings())。尽管尝试了hook文件和spec文件打包,但体积过大且仍存在模块缺失。此外,使用UPX压缩可能会被360误报为病毒。
最低0.47元/天 解锁文章
615





