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

求助:运行initialize_db.py时出现ModuleNotFoundError: No module named 'src'

解决ModuleNotFoundError: No module named 'src'问题

针对你的文件结构和导入报错,这里有几种可行的解决方式:

方法1:在脚本中手动添加路径

在initialize_db.py的最顶部添加以下代码,将项目根目录(main_dir)加入Python的模块搜索路径:

import sys
import os
# 获取当前脚本的父目录的父目录,也就是main_dir的路径
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))

# 之后正常导入
from src.models import metadata

方法2:使用相对导入(需注意运行方式)

修改initialize_db.py中的导入语句为相对导入格式:

from ..src.models import metadata

但这种方式下不能直接运行initialize_db.py,需要回到main_dir目录,用模块方式运行脚本:

python -m scripts.initialize_db

因为相对导入要求脚本作为包的一部分被加载,而非独立执行。

方法3:设置PYTHONPATH环境变量

将main_dir的路径添加到PYTHONPATH环境变量中,让Python全局识别src模块:

  • Linux/macOS终端:
    export PYTHONPATH=/绝对路径/to/main_dir
    
  • Windows命令提示符:
    set PYTHONPATH=C:\绝对路径\to\main_dir
    

设置完成后,直接运行initialize_db.py即可正常导入。

补充说明

报错的原因是:当你直接运行scripts/initialize_db.py时,Python会把scripts目录作为默认的模块搜索路径,而src目录在scripts的上层,不在搜索范围内,所以找不到src模块。以上方法都是通过不同方式将main_dir加入搜索路径,让Python能找到src包。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 22:48:13