Scrapyd部署项目后启动报错,无法找到模块No module named xxxx(已解决)
前置操作
爬虫本地测试无任何问题,正常部署到scrapyd中,无异常
报错
通过远程启动爬虫报错提示No module named xxxx
原因
scrapyd没有将文件/模块成功打包
通过查看爬虫目录下的project.egg-info
(不同版本可能名字不同,但会有egg存在)
目录结构为以下
.
├── dependency_links.txt
├── entry_points.txt
├── PKG-INFO
├── SOURCES.txt
└── top_level.txt
其中SOURCES.txt
文件存放的是通过scrapyd-deploy
命令打包的源码码位置,如果文件中不存在对应路径,则远程启动爬虫无法导入对应的模块
# SOURCES.txt
setup.py
spider/__init__.py
spider/items.py
spider/middlewares.py
spider/pipelines.py
spider/settings.py
spider/spiders/__init__.py
spider/spiders/xxx.py
spider/spiders/utils.py
spider/utils/__init__.py
spider/utils/my_dupefilter.py
project.egg-info/PKG-INFO
project.egg-info/SOURCES.txt
project.egg-info/dependency_links.txt
project.egg-info/entry_points.txt
project.egg-info/top_level.txt
解决方案
手动添加路径,再启动爬虫,若继续报错,使用scrapy-deploy
命令重新部署,再启动爬虫即可