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

Python跨文件夹导入报Attempted relative import错误如何解决?

Python跨文件夹相对导入报错问题解答

写法问题说明

你当前的导入写法存在两处核心错误:

  • 相对路径逻辑错误:.开头的相对导入代表当前脚本所在的目录,Script1.py存放在folder1目录下,from .utils.utils import *实际指向的是folder1/utils/utils.py,但你的utils文件夹和folder1是平级关系,并不在folder1内部,路径完全不匹配目标文件。
  • 相对导入使用场景错误:相对导入只能在作为模块被导入的Python文件中生效,如果你直接把Script1.py作为入口脚本运行(例如执行python Script1.py命令),Python会将该脚本的包身份标记为__main__,不识别它所属的包结构,会直接触发相对导入报错。

对应解决方法

方案1:保留相对导入使用

  • 先修改导入路径为正确的相对路径,..代表当前目录的上级目录,写法调整为:
from ..utils.utils import *
  • 运行脚本时不能直接执行Script1.py,需要切换到folder1和utils的共同上级目录(项目根目录),通过模块调用方式运行:
python -m folder1.Script1

方案2:支持直接运行Script1.py

  • 放弃相对导入,先将项目根目录添加到Python的模块搜索路径中,再用绝对路径导入:
import sys
from pathlib import Path
# 此处将Script1.py的上级的上级(即项目根目录)加入搜索路径
sys.path.append(str(Path(__file__).parent.parent.resolve()))
from utils.utils import *
  • 调整后可直接执行python Script1.py正常运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 00:54:04