Scrapyd部署项目后启动报错,无法找到模块No module named xxxx(已解决)

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命令重新部署,再启动爬虫即可

你可能感兴趣的:(Scrapy,spider,scrapyd,scrapy,远程部署)