Error loading ASGI app. Attribute "app" not found in module "statement".
出现的问题(我的是问题7)
(venv) PS E:\yyb\ele_scteen\hhd-link-ai-elescreen> uvicorn statement:app --reload --host 0.0.0.0 --port 9014
INFO: Will watch for changes in these directories: ['E:\\yyb\\ele_scteen\\hhd-link-ai-elescreen']
INFO: Uvicorn running on http://0.0.0.0:9014 (Press CTRL+C to quit)
INFO: Started reloader process [2960] using StatReload
ERROR: Error loading ASGI app. Attribute "app" not found in module "statement".
使用主函数可以启动服务
if name == "__main__":
uvicorn.run(app, host='0.0.0.0', port=9014)
使用指令不能启动服务
uvicorn statement:app --reload --host 0.0.0.0 --port 9014
检查问题和解决问题
1. 检查 statement.py
文件
确保你的 statement.py
文件中有以下代码:
python复制代码from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def read_root():
return {"Hello": "World"}
2. 确认文件路径
确保 statement.py
文件与当前运行命令的目录相同,即在 E:\yyb\ele_scteen\hhd-link-ai-elescreen
中。
3. 模块命名
如果你的文件名不是 statement.py
,确保在命令中使用的模块名与实际文件名相匹配。
4. 检查环境
确保你在虚拟环境中,并且已经安装了 fastapi
和 uvicorn
。可以通过以下命令检查:
pip show fastapi uvicorn
5. 重启环境
有时重启命令行界面和虚拟环境也能解决问题。确保在执行命令之前激活你的虚拟环境。
6. Python 文件的语法错误
检查 statement.py
是否有语法错误或其他问题,确保可以正常导入。
根据以上步骤进行检查,应该能找到并解决问题。
6. 存在同名文件或文件夹
检擦运行的文件夹目录下是否存在与statement.py文件同名的文件夹或文件,导致指令查找不到对应的statement.py文件
可以尝试修改文件名statement.py改为state.py文件重新运行
uvicorn statement:app --reload --host 0.0.0.0 --port 9014
即可