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

FastAPI启动触发ImportError:相对导入无已知父包求助

解决FastAPI启动时的token模块导入冲突问题

核心问题原因

你的自定义文件token.py与Python标准库的token模块重名,导致Python导入模块时优先加载了当前目录下的自定义文件,而非标准库模块。同时,自定义token.py中使用的相对导入from . import schemas,在该文件被当作顶层模块加载时(因标准库导入路径触发),不存在对应的父包,进而触发ImportError。

快速修复步骤

  • 重命名自定义文件:将你的token.py修改为非标准库重名的名称,比如auth_token.py或app_token.py。
  • 更新所有导入引用:遍历项目中所有导入该文件的代码,将import token或from . import token这类语句,替换为新的文件名(例如from . import auth_token)。
  • 清理缓存:删除项目目录下的__pycache__文件夹,避免旧的模块缓存干扰新的导入逻辑。

验证修复

完成上述操作后,重新执行uvicorn main:app --reload启动服务,检查导入错误是否消失。

后续避坑建议

  • 永远不要使用Python标准库的模块名命名自定义文件(比如json.py、datetime.py、token.py等),这类命名会直接引发模块导入冲突。
  • 确保项目采用规范的包结构,若使用相对导入,需保证模块处于正确的包层级下(可通过在目录中添加__init__.py文件明确包结构,Python 3.3+虽支持无__init__.py的命名空间包,但规范结构更易维护)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 10:45:39