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

Scrapy项目spider导入items模块触发ModuleNotFoundError问题求助

问题根源

你追加到sys.path的相对路径与当前工作目录不匹配,导致Python模块搜索路径中不包含items.py所在的目录。你当前工作目录已经是内层的scrapy_test_project目录,再拼接scrapy_test_project/scrapy_test_project得到的路径实际不存在,自然无法识别items模块。

解决方案

方案1:动态配置模块搜索路径(适合直接运行spider脚本的场景)

替换你现有的sys.path相关代码,用文件绝对路径动态定位目录,不受工作目录影响:

import sys
import os
# 取当前quote_spider.py文件所在的spiders目录的父目录,即items.py所在的目录
current_file_path = os.path.abspath(__file__)
spiders_dir = os.path.dirname(current_file_path)
project_inner_dir = os.path.dirname(spiders_dir)
sys.path.append(project_inner_dir)

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

方案2:使用Scrapy标准导入规则(推荐)

如果你通过官方scrapy crawl命令启动爬虫,不需要手动修改sys.path,直接使用相对导入即可:

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

注意:该写法不支持直接单独运行quote_spider.py文件,必须通过Scrapy命令或项目根目录的启动脚本调用

方案3:绝对包名导入

将外层scrapy_test_project目录添加到系统环境变量PYTHONPATH中,之后可以直接用完整包名导入:

from scrapy_test_project.items import TestItem

内容的提问来源于stack exchange,提问作者Denzel Hooke

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 11:51:03