【Python 实用技巧】FastAPI 部署到 Windows 服务

前言

大家好,我是Mark。最近真的是忙麻了都没时间好好写文章,好几篇文章只是写了个标题,然后就搁置了。后续的文章可能会偏实战一些,结合 AI、Python、Unity 做一些有趣的内容。有需求也可以私信我或评论区留言,我会尽可能的帮大家实现哈

一、开发 FastAPI 应用

1. 安装依赖

安装 FastAPI 和 ASGI 服务器(如 Uvicorn)

pip install fastapi uvicorn[standard]

2. 示例代码

确保你的应用在本地可以正常运行。示例代码 main.py

from fastapi import FastAPI

app = FastAPI()

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

3. 测试本地运行

启动 Uvicorn 服务:

uvicorn main:app --host 0.0.0.0 --port 8000

访问 http://localhost:8000 确认应用正常工作

二、下载安装 NSSM 设置 Windows 服务

1. 下载

访问 NSSM 官网 下载并解压。 ![[nssm-2.24.zip]] image.png

2. 安装服务

使用==管理员身份==打开命令行,进入 NSSM 解压目录,运行:

nssm install MyFastAPI

在弹出窗口中配置:

  • Path: 你的 Python 解释器路径(如 C:\Python39\python.exe)。
  • Startup directory: 项目目录路径(如 D:\JobContent\PythonProject\Practice)。
  • Arguments-m uvicorn main:app --host 0.0.0.0 --port 8000

3. 启动服务

nssm start MyFastAPI

4. 验证服务是否运行

sc query MyFastAPI

如果状态为 ​RUNNING,表示部署成功。

5. NSSM 命令集

核心服务管理命令

命令说明示例
nssm install <服务名称>创建新服务(弹出GUI配置界面)nssm install MyFastAPI
nssm start <服务名称>启动服务nssm start MyFastAPI
nssm stop <服务名称>停止服务nssm stop MyFastAPI
nssm restart <服务名称>重启服务nssm restart MyFastAPI
nssm remove <服务名称>删除服务(需确认)nssm remove MyFastAPI
nssm remove <服务名称> confirm强制删除服务(无需确认)nssm remove MyFastAPI confirm

服务配置修改

命令说明示例
nssm edit <服务名称>修改服务配置(弹出GUI界面)nssm edit MyFastAPI
nssm set <服务名称> <参数> <值>直接通过命令行修改配置(无需GUI)nssm set MyFastAPI AppDirectory C:\app
nssm reset <服务名称> <参数>重置某个配置参数为默认值nssm reset MyFastAPI AppDirectory

服务状态与日志

命令说明示例
nssm status <服务名称>查看服务状态nssm status MyFastAPI
nssm list列出所有通过NSSM创建的服务nssm list
nssm rotate <服务名称>手动轮转服务日志(切割日志文件)nssm rotate MyFastAPI

高级命令

命令说明示例
nssm dump <服务名称>导出服务配置为注册表文件(.reg)nssm dump MyFastAPI
nssm get <服务名称> <参数>查看某个配置参数的值nssm get MyFastAPI AppParameters
nssm processes列出所有由NSSM管理的进程nssm processes

三、结束

对你有帮助的话可以点赞、关注、收藏,有问题评论区见哈~

原创不易,若转载请注明出处,感谢大家~

Logo © 2025 Mark All Rights Reserved. 陕ICP备2025083152号