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

如何解决ImportError: attempted relative import with no known parent package错误

问题原因

你直接执行shoot-a-photo.py时,Python会将该脚本所在的misc/calibration/目录作为顶级模块搜索路径,无法识别到上层的misc包结构,因此相对导入语法..会失效。

可用解决方案

方案1:以模块方式运行脚本(无需修改代码)

不要直接执行.py文件,切换到项目根目录(也就是vision-2021/文件夹),用-m参数以模块形式运行即可:

python -m misc.calibration.shoot-a-photo

这种方式Python会自动识别整个项目的包结构,原有相对导入可以正常生效。

方案2:修改为绝对导入+手动添加根目录到搜索路径

如果希望可以直接运行脚本,修改shoot-a-photo.py的导入部分代码,在导入set_camera之前先把项目根目录加入Python的模块搜索路径:

import sys
from pathlib import Path
# 三层parent分别对应:当前文件所在目录calibration → 上层目录misc → 上层目录项目根目录
sys.path.append(str(Path(__file__).parent.parent.parent.resolve()))
# 改用绝对导入
from misc.functions import set_camera

修改完成后你可以直接在任意位置运行shoot-a-photo.py,导入逻辑都可以正常工作。

方案3:调整项目入口结构

如果这类工具脚本较多,可以在项目根目录下编写统一的入口脚本,或者把工具逻辑封装成可调用的函数,通过根目录的入口触发执行,避免直接运行深层子目录脚本导致的导入问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 06:15:08