A-A+

Uvicorn 无法启动 FastAPI APP 提示 WARNING

2023年04月24日 13:57 学习笔记 暂无评论 共784字 (阅读1,245 views次)

【注意:此文章为博主原创文章!转载需注意,请带原文链接,至少也要是txt格式!】

今天在启动fastapi的时候,发现系统报错,然后各种找原因,发现问题出现在热加载的那个地方。

我的代码如下:

import uvicorn
from fastapi import FastAPI
app = FastAPI(title='MADS API')
uvicorn.run(app, host='0.0.0.0', port=8127, reload=True, workers=2)

##结果系统报错如下:
##WARNING:  You must pass the application as an import string to enable 'reload' or 'workers'.

出现这个问题后,各种找资料,最终定位是app这里有问题。

这里第一种更改的方法是把uvicorn.run里面的第一个参数app更改一下,变成“文件名:app”,注意文件名就是你这个文件的名字,假定是api.py为文件名,那么这个名字就是api:app

那更改后就是:

import uvicorn
from fastapi import FastAPI
app = FastAPI(title='MADS API')
uvicorn.run('api:app', host='0.0.0.0', port=8127, reload=True, workers=2)

除了这种方法还有一个方法,我这里暂时没有试验方法二,把代码改成如下,加入main即可:

import uvicorn
from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def get_root():
    return {"message": "Hello World"}

if __name__ == "__main__":
    uvicorn.run("__main__:app", host="0.0.0.0", port=8000, reload=True, workers=2)

布施恩德可便相知重

微信扫一扫打赏

支付宝扫一扫打赏

×

给我留言