FastAPI作为Windows服务
发布于2021-03-03 18:19
实测可用https://www.pythonheidong.com/blog/article/873967/c7d16fdb3501240ca8e2/
我试图将FastAPI作为Windows服务运行。找不到任何文档或文章将Uvicorn作为Windows服务运行。我也尝试使用NSSM,但是Windows服务停止了。
解决方案
我设法使用NSSM将带有uvicorn的FastAPI作为Windows服务运行。
我必须以编程方式部署uvicorn,基本上是直接从您的Python脚本运行uvicorn,然后使用NSSM创建并安装自定义服务。
这是一个基于FastAPI的示例的小示例,但是您无需使用uvicorn main:app --reload
命令行运行它,而是uvicorn.run(app, **config)
使用自己的配置来添加。
from fastapi import FastAPI
import uvicorn
app = FastAPI()
@app.get("/")
def read_root():
return {"Hello": "World"}
if __name__ == "__main__":
uvicorn.run("main:app", host="127.0.0.1", port=5000, log_level="info")
然后,您可以使用标准命令将其与NSSM一起安装nssm install
nssm.exe install "FastAPIWindowsService" "C:\Scripts\FastAPIWindowsService\venv\Scripts\python.exe" "C:\Scripts\FastAPIWindowsService\src\main.py"
相应地更改服务名称,python.exe的路径以及脚本的路径。安装后,您的服务应显示在Windows服务管理器中。
希望这会有所帮助,并为您服务!