You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

运行Scrapy的main_executor.py报No module named 'research'错误求助

问题成因

报错ModuleNotFoundError: No module named 'research'是Scrapy项目路径配置错误导致的。Scrapy的get_project_settings()方法启动时会自动搜索当前工作目录下的项目配置模块,你现在直接在内层research文件夹下运行main_executor.py,Python解释器的模块搜索路径里没有包含Scrapy项目的根目录,自然找不到名为research的项目模块,就会抛出这个错误。

排查解决步骤

按顺序操作即可:

  • 先找对项目根目录
    找到你项目里存放scrapy.cfg文件的文件夹,从你给的路径看,这个文件夹应该是C:\Users\khoih\OneDrive\Desktop\RA Files\CyberSite\research(外层的research文件夹,不是和main_executor.py同目录的内层同名research文件夹),所有启动操作都要以这个文件夹为工作目录执行。
  • 正确启动脚本
    打开终端切到上面找到的根目录,执行命令python research/main_executor.py即可,不要直接在IDLE里点开内层的脚本点运行按钮,IDLE默认会把脚本所在目录设为工作目录,路径层级不对必报错。
  • 兼容直接运行脚本的修改方案
    如果想不管在哪运行这个脚本都不报错,直接在main_executor.py最开头加路径注入代码,修改后的完整代码如下:
import sys
from pathlib import Path
# 自动把Scrapy项目根目录加入Python模块搜索路径
sys.path.append(str(Path(__file__).parent.parent.resolve()))

from scrapy.utils.project import get_project_settings
from scrapy.crawler import CrawlerProcess

setting = get_project_settings()
process = CrawlerProcess(setting)

for spider_name in process.spiders.list():
    print(f"Running spider {spider_name}")
    process.crawl(spider_name, query="dvh") # query dvh为项目内自定义传参

process.start()
  • 配置文件校验
    打开根目录下的scrapy.cfg文件,确认[settings]段的配置如下,模块名写错也会触发同类报错:
[settings]
default = research.settings

补充:如果按以上步骤操作完还是报错,把整个项目文件夹从OneDrive同步目录移到磁盘根目录比如C:\CyberSite再试,Windows下同步盘的文件锁、路径过长问题也可能导致模块加载失败。

内容的提问来源于stack exchange,提问作者Khoi Hoang

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 05:06:24