1

我正在尝试将 FastAPI 作为 Windows 服务运行。找不到任何文档或任何文章将 Uvicorn 作为 Window 服务运行。我也尝试使用 NSSM,但我的 Windows 服务停止了。

4

1 回答 1

9

我设法使用 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 服务管理器中。

希望这对您有所帮助,并为您工作!

于 2021-01-29T14:19:10.003 回答