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

FastAPI相对导入超出顶级包错误求助:无法导入schema与models

问题求助

文件结构如下(附截图):
文件结构截图

在routers/blog.py文件中,我使用语句 from ..Blog import schema, models 尝试导入Blog目录下的schema和models文件,却触发错误:

from ..Blog import schema, models
ImportError: attempted relative import beyond top-level package

我已参考相关方案,但问题仍未解决,特此求助。

解决方案
  • 改用绝对导入:因为routers和Blog是同级目录,直接替换导入语句为 from Blog import schema, models。同时需要确保项目根目录被添加到Python的模块搜索路径中:

    • 可以在项目入口脚本(比如根目录下的main.py)中添加代码:
      import sys
      import os
      sys.path.append(os.path.dirname(os.path.abspath(__file__)))
      
    • 或者手动设置系统环境变量PYTHONPATH,将其值设为项目根目录的绝对路径。
  • 确保目录被识别为包:在Blog、routers等目录下添加空的__init__.py文件,让Python明确将这些目录视为可导入的包(Python 3.3+支持命名空间包,但显式添加该文件能避免很多导入问题)。

  • 正确启动项目:不要直接运行routers/blog.py,而是从项目根目录运行入口脚本(比如main.py)。这样Python会将项目根目录作为顶级包,相对导入就不会出现“超出顶级包”的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 01:17:18