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

为何持续出现ModuleNotFoundError: No module named 'src'?如何解决?

解决ModuleNotFoundError: No module named 'src'的几种有效方法

方法1:从项目根目录运行脚本

假设你的项目根目录是包含src的上级文件夹(比如路径为/home/xxx/your_project/,该目录下存在src文件夹),打开终端切换到这个根目录,执行以下命令运行脚本:

python src/components/data_ingestion.py

这种方式会让Python自动将项目根目录纳入模块搜索路径,从而识别到src模块。

方法2:修正sys.path的添加逻辑

如果必须直接在src/components目录下运行脚本,要确保将**src的父目录**(项目根目录)加入sys.path,而非src目录本身。修改代码如下:

import os
import sys
# 获取当前文件的上级目录的上级目录,即项目根目录
project_root = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(project_root)

from src.exception import CustomException

此前无效可能是因为错误添加了src目录到sys.path,导致Python无法将src识别为顶层模块。

方法3:设置PYTHONPATH环境变量

通过环境变量将项目根目录加入Python的模块搜索路径:

Linux/macOS终端

export PYTHONPATH="/home/xxx/your_project:$PYTHONPATH"
python src/components/data_ingestion.py

Windows命令提示符

set PYTHONPATH=C:\path\to\your_project;%PYTHONPATH%
python src\components\data_ingestion.py

若需永久生效,可将该环境变量添加到系统配置文件(Linux的~/.bashrc/~/.zshrc,Windows的系统环境变量设置界面)。

方法4:使用相对导入+模块方式运行(适合包结构场景)

修改data_ingestion.py的导入语句为相对导入:

from ..exception import CustomException

然后从项目根目录以模块方式运行脚本:

python -m src.components.data_ingestion

注意:直接运行脚本时相对导入会报错,此方法仅适用于以包模块形式启动的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 08:27:41