FastAPI项目导入config模块失败,报ModuleNotFoundError求助
解决FastAPI模块导入失败问题
问题原因
你的main.py位于app目录下,使用绝对导入语句时,Python默认从当前运行命令的目录查找模块,导致无法定位app目录下的config和routers模块,从而抛出ModuleNotFoundError。
解决方案
方案1:使用相对导入
修改main.py中的导入语句,利用相对导入定位同目录下的模块:
from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware # 导入当前目录下的config模块 from .config import settings # 导入当前目录下routers文件夹中的模块 from .routers import user, auth # 后续代码保持不变...
方案2:正确启动服务器(推荐)
不要进入app目录运行文件,回到项目根目录(server-v1),执行以下命令启动服务:
uvicorn app.main:app --reload
此方式会将项目根目录加入Python模块搜索路径,app会被识别为标准Python包,原有的绝对导入语句即可正常工作。
方案3:手动添加项目路径到Python环境
如果需要在app目录下运行,可在main.py开头添加代码,手动将项目根目录加入搜索路径:
import sys from pathlib import Path # 把项目根目录(server-v1)添加到Python路径中 sys.path.append(str(Path(__file__).parent.parent)) # 后续导入语句保持原有写法即可 from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware from config import settings from routers import user, auth # 后续代码保持不变...
内容的提问来源于stack exchange,提问作者Temirlan
相关产品推荐
相关产品推荐

