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

Python相对导入遇阻:找不到src模块的解决方案咨询

Python模块导入问题解决方案

可行解决方法

1. 动态添加项目根目录到Python路径

在gpt_int.py开头加入以下代码,手动将项目根目录(project/)添加到Python的模块搜索路径中:

import sys
from pathlib import Path

# 定位到项目根目录(project/)
project_root = Path(__file__).parent.parent.parent
sys.path.append(str(project_root))

# 现在可以正常导入目标模块
from src.dir1.data_processing.import_data import load_data

2. 使用正确的相对路径导入

因为gpt_int.py位于dir1/model_dev/下,而data_processing在同一级的dir1/目录下,正确的相对路径写法是:

from ..data_processing.import_data import load_data

注意:这种方式必须以模块形式运行脚本,不能直接执行gpt_int.py。比如从project/目录下运行:

python -m src.dir1.model_dev.gpt_int

3. 设置PYTHONPATH环境变量(推荐长期开发)

通过环境变量让Python自动识别项目根目录,无需每次修改代码:

  • Linux/macOS终端(进入project/目录后):
    export PYTHONPATH=$(pwd)
    
  • Windows CMD(进入project/目录后):
    set PYTHONPATH=%cd%
    
  • Windows PowerShell(进入project/目录后):
    $env:PYTHONPATH = (Get-Location).Path
    

设置完成后,直接使用你最初的导入语句即可生效:

from src.dir1.data_processing.import_data import load_data

为什么之前的方法失败

  • 直接使用from src...导入失败:因为Python的模块搜索路径中没有包含project/目录,无法识别src作为顶层模块。
  • 错误的相对路径:你之前写的from ..dir1.data_processing...多了一层dir1,gpt_int.py的父目录是model_dev,往上一级就是dir1,所以无需重复写dir1。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 15:36:14