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

Python模块导入报错:ModuleNotFoundError: No module named 'backbones' 求解

问题原因及解决方法

核心原因

直接运行models/builder.py时,Python会自动把models目录加入模块搜索路径(sys.path),所以from backbones import c3d能找到同级的backbones文件夹。但运行根目录下的main.py时,sys.path仅包含项目根目录,此时backbones是models的子目录,不在搜索路径范围内,因此会触发模块找不到的错误。

解决方法

方法1:使用相对导入(推荐)

修改builder.py中的导入语句,改用相对路径指向同包内的子模块:

# models/builder.py
from .backbones import c3d
from .heads import i3d

这种方式基于当前模块所在的models包定位子模块,无论从哪个入口调用都能正确解析路径。

方法2:确保所有目录都有__init__.py

确认以下目录下都存在空的__init__.py文件(文件名必须是双下划线开头和结尾,不能拼写错误):

  • models/
  • models/backbones/
  • models/heads/
    该文件是Python识别包的标志,缺少会导致子模块无法被正确识别为包的一部分。

方法3:手动添加项目根目录到搜索路径(应急方案)

如果暂时不想修改导入语句,可在main.py开头添加代码,将项目根目录加入sys.path:

# main.py
import sys
import os
# 获取当前文件所在的项目根目录路径
root_dir = os.path.dirname(os.path.abspath(__file__))
sys.path.append(root_dir)

不过这种方式不够规范,长期维护优先推荐方法1。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 03:22:04