FastAPI 作为 Windows 服务

2023-12-23

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


我设法使用 NSSM 将 FastAPI 与 uvicorn 作为 Windows 服务运行。

我不得不以编程方式部署 uvicorn https://www.uvicorn.org/deployment/#running-programmatically,基本上直接从 Python 脚本运行 uvicorn,然后使用 NSSM 创建并安装自定义服务。

这是一个基于 FastAPI 的小例子example https://fastapi.tiangolo.com/#example,但不是运行它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 command https://nssm.cc/commands

nssm.exe install "FastAPIWindowsService" "C:\Scripts\FastAPIWindowsService\venv\Scripts\python.exe" "C:\Scripts\FastAPIWindowsService\src\main.py"

相应地更改您的服务名称、python.exe 的路径和脚本的路径。安装后,您的服务应该出现在 Windows 服务管理器中。

希望这对您有所帮助,并且对您有用!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

FastAPI 作为 Windows 服务 的相关文章

  • 从 Django 调用 Postgres SQL 存储过程

    我正在开发一个带有 Postgresql 数据库的 Django 项目 我编写了一个可以在 Postgres 上完美运行的存储过程 现在我想从 Django 1 5 调用该存储过程 我已经编写了代码 但它提示错误 CREATE FUNCTI
  • 上传时的 Google Drive API——这些额外的空行从何而来?

    总结一下该程序 我从我的 Google 云端硬盘下载一个文件 然后在本地计算机中打开并读取一个文件 file a txt 然后在我的计算机中打开另一个文件 file b txt 处于附加模式 并且在使用这个新的 file b 更新我的 Go
  • 在 Pandas 中,如何从基于另一个数据框的数据框中删除行?

    我有 2 个数据框 一个名为 USERS 另一个名为 EXCLUDE 他们都有一个名为 电子邮件 的字段 基本上 我想删除 USERS 中包含 EXCLUDE 中包含电子邮件的每一行 我该怎么做 您可以使用boolean indexing
  • 如何使用 colorchecker 在 opencv 中进行颜色校准?

    我有数码相机获取的色彩检查器图像 我如何使用它来使用 opencv 校准图像 按照以下颜色检查器图像操作 您是想问如何进行颜色校准或如何使用 OpenCV 进行校准 为了进行颜色校准 您可以使用校准板的最后一行 灰色调 以下是您应该逐步进行
  • TensorFlow:带有轴选项的 bincount

    在 TensorFlow 中 我可以使用 tf bincount 获取数组中每个元素的计数 x tf placeholder tf int32 None freq tf bincount x tf Session run freq feed
  • NumPy linalg.eig

    我有这个烦人的问题 但我还没有弄清楚 我有一个矩阵 我想找到特征向量 所以我写 val vec np linalg eig mymatrix 然后我得到了 vec 我的问题是 当我小组中的其他人对相同的矩阵 mymatrix 做同样的事情时
  • Pyqt-如何因另一个组合框数据而更改组合框数据?

    我有一个表 有 4 列 这 4 列中的两列是关于功能的 一个是特征 另一个是子特征 在每一列中 所有单元格都有组合框 我可以在这些单元格中打开txt 我想 当我选择电影院作为功能时 我只想看到子功能组合框中的电影名称 而不是我的 数据 中的
  • 无故运行测试时 PyCharm 抛出“AttributeError: 'module' object has no attribute”

    因此 我有一个 Django REST Framework 项目 有一天它无法在 PyCharm 中运行测试 从命令行我可以使用它们来运行它们paver or the manage py直接地 曾经有一段时间 当我们没有在文件顶部导入类的超
  • “一旦获取切片就无法更新查询”。最佳实践?

    由于我的项目的性质 我发现自己不断地从查询集中取出切片 如下所示 Thread objects filter board requested board id order by updatedate 10 但这给我带来了实际对我选择的元素进
  • PyTorch 给出 cuda 运行时错误

    我对我的代码做了一些小小的修改 以便它不使用 DataParallel and DistributedDataParallel 代码如下 import argparse import os import shutil import time
  • Python中列表中两个连续元素的平均值

    我有一个偶数个浮点数的列表 2 34 3 45 4 56 1 23 2 34 7 89 我的任务是计算 1 和 2 个元素 3 和 4 5 和 6 等元素的平均值 在 Python 中执行此操作的快捷方法是什么 data 2 34 3 45
  • 如何使用 javascript/jquery/AJAX 调用 Django REST API?

    我想使用 Javascript jQuery AJAX 在前端调用 Django Rest API 请求方法是 POST 但当我看到 API 调用它的调用 OPTIONS 方法时 所以 我开始了解access control allow o
  • 迭代列表的奇怪速度差异

    我创建了两个重复两个不同值的长列表 在第一个列表中 值交替出现 在第二个列表中 一个值出现在另一个值之前 a1 object object 10 6 a2 a1 2 a1 1 2 然后我迭代它们 不对它们执行任何操作 for in a1 p
  • Django - 提交具有同一字段多个输入的表单

    预警 我对 Django 以及一般的 Web 开发 非常陌生 我使用 Django 托管一个基于 Web 的 UI 该 UI 将从简短的调查中获取用户输入 通过我用 Python 开发的一些分析来提供输入 然后在 UI 中呈现这些分析的可视
  • sqlite3从打印数据中删除括号

    我创建了一个脚本 用于查找数据库第一行中的最后一个值 import sqlite3 global SerialNum conn sqlite3 connect MyFirstDB db conn text factory str c con
  • 字符串列表,获取n个元素的公共子串,Python

    我的问题可能类似于this https stackoverflow com questions 37514193 count the number of occurrences of n length not given string in
  • 通过 Web 界面执行 python 单元测试

    是否可以通过 Web 界面执行单元测试 如果可以 如何执行 EDIT 现在我想要结果 对于测试 我希望它们是自动化的 可能每次我对代码进行更改时 抱歉我忘了说得更清楚 EDIT 这个答案此时已经过时了 Use Jenkins https j
  • 如何使用Python保存“完整的网页”而不仅仅是基本的html

    我正在使用以下代码来使用 Python 保存网页 import urllib import sys from bs4 import BeautifulSoup url http www vodafone de privat tarife r
  • tkinter:打开一个带有按钮提示的新窗口[关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 用户如何按下 tkinter GUI 中的按钮来打开新窗口 我只需要非常简单的解决方案 如果代码也能被解释那就太好了 这
  • python 中的 after() 与 update()

    我是 python 新手 开始使用 tkinter 作为画布 到目前为止 我使用 update 来更新我的画布 但还有一个 after 方法 谁能给我解释一下这个函数 请举个例子 两者之间有什么区别 root after integer c

随机推荐

  • 从 Unity 中的 Android Studio 读取意图

    我有一个 Unity 游戏导出到 Android Studio 中 我有一个已保存游戏的列表 其中存储了玩家玩的每个游戏的最后一个场景 基本上存储玩家的进度 从 Unity 到 Android Studio 播放的最后一个场景的编写效果非常
  • Delphi 应用程序的插件系统 - bpl 与 dll?

    我正在编写delphi应用程序 它应该具有加载插件的能力 我使用 JvPluginManager 作为插件系统 管理器 现在 在新的插件向导中 他们说最好使用 bpl 类型插件而不是 dll 插件 这个解决方案与 dll 类型插件相比有什么
  • 增量求解有什么好处?

    如果 pop 完全破坏了上下文 即学到的引理 增量约束求解使用 堆栈 的目的是什么 模式 理由 我想如果我只有 1 个约束 几个 合词 最好进行单个查询 而不是 将单独帧中的合取词堆叠到堆栈上 如果我 有超过 1 个约束并决定使用增量求解
  • 如何使用 Gekko 加快优化速度?

    我的计划是优化家用电池的充电和放电 以最大限度地降低年底的电力成本 每15分钟测量一次家庭用电量 所以我在1天内有96个测量点 我想优化电池 2 天的充电和放电 以便第 1 天考虑到第 2 天的使用情况 我编写了以下代码并且它有效 from
  • new 类名(). 方法名(); VS className ref = new className();

    我遇到了我的同事在一个内部使用的代码eventListner 即 private void someActionPerformed java awt event ActionEvent evt new className methodNam
  • makefile“没有规则来创建目标”错误

    我已经研究这个问题有一段时间了 但仍然不知道出了什么问题 我的 makefile 如下所示 F90 pgf90 NETCDF DIR opt netcdf LBS L NETCDF DIR lib lnetcdff lnetcdf INCL
  • 通过交互和指南修改 ggplot2 中的图例

    df lt data frame Depth c 1 2 3 4 5 6 7 8 Var1 as factor c rep A 4 rep B 4 Var2 as factor c rep c C D 4 Value runif 8 g l
  • Eclipse 给出错误“...不是链接资源的有效位置。”

    当我尝试在 Eclipse 中为构建路径配置添加新的类路径变量 并且我添加的路径是当前工作区是其子目录的目录时 Eclipse 给出错误 C JavaStuff is not a valid location for linked reso
  • WCF DataContract - 标记成员 IsRequired=false

    我有一份合同如下 DataContract public class MyObj DataMember IsRequired true public string StrA get private set DataMember IsRequ
  • 具有非常大的 HDF5 文件的 Tensorflow-IO 数据集输入管道

    我有非常大的训练 30Gb 文件 由于我的可用 RAM 无法容纳所有数据 因此我想批量读取数据 我看到有 Tensorflow io 包实施了一种方式 https www tensorflow org io api docs python
  • 为什么Java类应该实现comparable?

    为什么是JavaComparable用过的 为什么有人要实施Comparable在课堂上 您需要实施比较的现实生活示例是什么 这是一个现实生活中的例子 注意String还实现了Comparable class Author implemen
  • 链表中的递归

    我一直在练习链表并想在其上实现递归 尽管在某些情况下我能够有效地实现它 但在其他情况下我却惨败 我想知道一种进行递归的方法 以便不必使用 while 来遍历链接列表 我已经使用递归来遍历数组 但是当我想在这种情况下做类似的事情时它失败 我在
  • Svg矩阵分解

    在 svg 中我们有方法element getCTM 它返回一个SVGMatrix as a c e b d f 0 0 1 我想从这个矩阵计算 sx sy 和旋转角度 关于这个主题有很多东西需要阅读和学习 我将给出一个基本的答案 但请注意
  • D3 - 显示/隐藏仅单击节点的文本

    我试图在单击时显示 隐藏 D3 中节点的文本 我尝试使用以下代码 var node svg selectAll node data json nodes node on click function if textShowing node
  • 如何手动更改 8086 的标志(在汇编代码中)?

    有没有办法手动更改每个标志 或者您是否必须使用一个您知道会改变它们的结果的命令 基本上我正在使用命令RCL 而且我不想一开始就得到1 所以我想改变CF到 0 我知道我可以使用如下命令 mov al 0 shl al 1 但我想知道是否有其他
  • 美国和加拿大的颜色网格单元

    我想为美国和加拿大的网格单元格着色 我的目标与这个问题非常相似 R 在地图上绘制填充的经纬度网格单元 https stackoverflow com questions 11164974 r plot filled longitude la
  • 使用 bash 在目录树中按名称查找文件

    Using bash 如何在目录树中的某处找到具有特定名称的文件pwd 更清楚地说 我想找到位于工作目录根目录中的文件 但我不知道根目录在哪里 而且我的pwd可能在根以下的任何地方 Find file txt直到根 x pwd while
  • 当我尝试对列表进行排序时,出现错误“dict”对象没有属性

    我创建列表的代码是 choices for bet in Bet objects all Here is code that skip loop if bet choice exist in choices temp choice bet
  • Keras ValueError:输入 0 与层 conv2d_1 不兼容:预期 ndim=4,发现 ndim=5

    我已经检查了所有解决方案 但仍然面临同样的错误 我的训练图像形状是 26721 32 32 1 我相信它是 4 维 但我不知道为什么错误显示它是 5 维 model Sequential model add Convolution2D 16
  • FastAPI 作为 Windows 服务

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