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

Python从子目录导入模块报ModuleNotFoundError错误求助

Python跨目录导入模块报错解决方案

报错原因说明

  • import Rocket:Python默认的模块搜索路径不包含Classes子目录,无法直接检索到该模块
  • import .Rocket:相对导入语法仅支持包内部的模块调用,main.py是项目入口脚本,不属于任意子包的内部模块,无法使用相对导入
  • import Classes.Rocket:该语法本身合法,报错通常是因为运行脚本时的工作目录不是vision项目根目录,导致Python无法定位到Classes包

可行解决方案

方案1(最推荐,无侵入修改)

  1. 在main.py中使用如下导入语句:
# 直接导入Rocket.py中的rocket类
from Classes.Rocket import rocket
# 如需导入整个Rocket模块则用:import Classes.Rocket
  1. 运行脚本时必须先切换到vision根目录,再执行启动命令:
python main.py

方案2(适配特殊运行场景)

如果你的运行环境无法固定在vision目录下启动脚本,可以在main.py最开头先将项目根目录加入Python模块搜索路径:

import sys
import os
# 将当前main.py所在的目录(即vision根目录)加入搜索路径
sys.path.append(os.path.dirname(os.path.abspath(__file__)))

# 之后正常导入即可
from Classes.Rocket import rocket

方案3(规范包结构场景)

如果项目后续需要打包发布,可以在vision根目录下也新增一个空的__init__.py文件,将整个vision目录标记为Python包,之后在vision的上级目录使用包启动命令运行:

python -m vision.main

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 00:24:01