FastAPI多文件拆分项目报ModuleNotFoundError: No module named 'app.routes'问询
FastAPI多文件结构ModuleNotFoundError报错解决
错误根因
你在main.py中使用了从app包开始的绝对导入from app.routes import auth,但执行uvicorn main:app --reload命令时的工作目录是app文件夹内部,Python无法将上层的app识别为可导入的包,因此触发模块找不到的报错。
解决方案
方案一:遵循官方规范调整启动方式(优先选择)
- 退出到
app文件夹的上级目录执行启动命令,命令修改为:
uvicorn app.main:app --reload
无需修改任何代码即可正常运行,完全匹配官方多文件项目的结构设计。
方案二:调整导入路径
- 如果你需要固定在
app文件夹内启动服务,将main.py中的导入语句修改为相对导入即可:
from .routes import auth
修改后执行原命令uvicorn main:app --reload就能正常启动。
注意:两种方案不要同时使用,否则会重复触发导入错误
内容的提问来源于stack exchange,提问作者Michael Kremenetsky
相关产品推荐
相关产品推荐

