FastAPI运行报错:模块main中未找到app属性求助
问题排查:Uvicorn提示"Attribute 'app' not found in module 'main'"
问题背景
- 已在虚拟环境执行
pip install fastapi[all]完成FastAPI安装 - 编写的
main.py代码如下:
from fastapi import FastAPI app = FastAPI() @app.get("/") async def root(): return {"message": "Hello World"}
- 执行
uvicorn main:app或uvicorn main:app --reload时,报错:
(venv) C:\Users\DELL\Desktop\API>uvicorn main:app ERROR: Error loading ASGI app. Attribute "app" not found in module "main".
- 确认已激活虚拟环境并使用对应Python解释器
可能的原因及解决办法
1. 文件路径或命名问题
检查当前执行命令的目录是否是main.py所在的目录,确认main.py确实放在C:\Users\DELL\Desktop\API文件夹下,没有放错子目录。同时确保文件名是main.py,避免因大小写问题(如Main.py)导致模块识别异常。2. 命名冲突导致导入失败
检查当前目录下是否存在fastapi.py或其他与FastAPI库同名的文件,这类文件会干扰Python对FastAPI库的导入,导致app = FastAPI()无法正常执行。如果有,立即重命名这类文件。3. Uvicorn未使用虚拟环境版本
即使激活了虚拟环境,若全局安装过Uvicorn,可能会调用全局版本而非虚拟环境内的版本。改用虚拟环境的Python直接运行Uvicorn:python -m uvicorn main:app --reload确保使用虚拟环境内的依赖执行服务。
4. 代码隐藏语法/导入错误
单独运行python main.py检查是否有语法错误或导入报错,比如FastAPI拼写错误、缺少依赖等。修复所有报错后,再重新启动Uvicorn。5. 模块缓存干扰
删除当前目录下的__pycache__文件夹,清除Python的模块缓存,再重新执行Uvicorn命令。
内容的提问来源于stack exchange,提问作者asra ANSARI
相关产品推荐
相关产品推荐

