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

Python报错ModuleNotFoundError:api非包,__init__.py为何未生效?

解决ModuleNotFoundError: No module named 'api.routers'问题

你遇到的问题核心是脚本运行方式导致的包识别错误:当直接运行api.py时,Python会把该文件所在的backend/api目录当成脚本的执行目录,而非将api识别为可导入的包。哪怕你添加了__init__.py,这种运行方式下Python也不会把当前目录当作包处理。

方案1:使用相对导入

修改api.py里的导入语句,用相对路径指向当前包下的routers:

from .routers import phone

这里的.代表当前包,Python会自动在api目录下查找routers子包,完全匹配你的目录结构。

方案2:从父目录以模块方式运行

回到backend目录(即api文件夹的上级目录),用模块运行的方式启动api.py:

python -m api.api

这种方式会把backend加入Python的模块搜索路径,此时api会被识别为顶级包,api.routers就能正常被找到并导入。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 22:35:54