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

VS Code+Conda环境下src模块导入失败问题求助

解决Python模块导入错误:ModuleNotFoundError: No module named 'src'

问题梳理

首先纠正你可能笔误的目录结构(根据报错文件路径src/components/data_ingestion.py,实际正确结构应为):

MLProjects
└── src
    ├── __init__.py
    ├── logger.py
    ├── exception.py
    └── components
        ├── __init__.py
        └── data_ingestion.py

你当前工作目录为MLProjects,尝试多种导入语句均报错,核心原因是Python无法识别src作为顶层模块,或运行方式不符合包导入规则。

解决方案

方案一:相对导入 + 模块式运行

  1. 在data_ingestion.py中使用相对导入:
    from ..exception import CustomException
    from ..logger import logging
    
  2. 回到MLProjects目录,用模块方式运行脚本:
    python -m src.components.data_ingestion
    
    (-m参数会将当前目录(MLProjects)加入Python的模块搜索路径,让Python正确识别src包结构)

方案二:设置PYTHONPATH环境变量

  1. 在VS Code终端(当前目录为MLProjects)执行:
    • Windows(Conda环境):
      set PYTHONPATH=%cd%
      
    • Linux/macOS:
      export PYTHONPATH=$(pwd)
      
  2. 此时可在data_ingestion.py中使用绝对导入:
    from src.exception import CustomException
    from src.logger import logging
    
  3. 直接运行脚本或用任意方式启动均可。

方案三:VS Code配置额外路径

  1. 打开VS Code的settings.json(快捷键Ctrl+,打开设置,搜索settings.json进入编辑),添加:
    "python.analysis.extraPaths": ["${workspaceFolder}"]
    
  2. 该配置仅解决VS Code语法检查的红色警告,运行时仍需结合方案一或方案二确保Python能找到src模块。

错误原因说明

  • 直接运行src/components/data_ingestion.py时,Python会将src/components视为顶层目录,sys.path中没有MLProjects,因此无法找到src模块。
  • 相对导入from ..exception要求文件作为包的一部分运行,不能直接以脚本形式启动,必须用python -m触发模块加载机制。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 06:35:14