用fastapi run运行程序
时间: 2025-05-09 16:21:16 浏览: 17
### 如何运行一个 FastAPI 应用程序
要运行一个基于 FastAPI 的应用程序,可以按照以下方法操作。通常情况下,FastAPI 使用 Uvicorn 或 Gunicorn 来作为 ASGI 服务器来启动应用。
#### 方法一:使用 Uvicorn 启动
Uvicorn 是一种轻量级的 ASGI 服务器,非常适合开发和小型生产环境下的 FastAPI 部署。以下是具体的实现方式:
假设有一个名为 `run.py` 的文件,其中包含了 FastAPI 实现逻辑[^1]:
```python
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
return {"message": "Hello World"}
```
可以通过终端执行以下命令来启动该应用:
```bash
uvicorn run:app --reload
```
- 参数解释:
- `run:app`: 表示加载 `run.py` 文件中的 `app` 对象。
- `--reload`: 开启热重载模式,在开发阶段非常有用,当代码发生变化时会自动重启服务。
默认情况下,这将在本地主机上启动服务,并监听端口 `8000`。你可以通过浏览器访问 `http://127.0.0.1:8000` 查看返回的结果。
---
#### 方法二:使用 Gunicorn 启动
对于更复杂的生产环境,推荐使用 Gunicorn 结合多个工作进程来提高性能。Gunicorn 可以管理多个 Uvicorn 工作线程,从而提升并发处理能力。
下面是一个典型的 Gunicorn 命令配置[^3]:
```bash
gunicorn main:app -b 0.0.0.0:10022 -w 4 -k uvicorn.workers.UvicornWorker --timeout 0 --access-logfile -
```
- 参数解释:
- `-b 0.0.0.0:10022`: 绑定 IP 地址和端口号。
- `-w 4`: 设置四个工作进程数(可以根据硬件资源调整)。
- `-k uvicorn.workers.UvicornWorker`: 指定使用的工作者类为 Uvicorn Worker。
- `--timeout 0`: 超时时间设置为无限大。
- `--access-logfile -`: 将日志输出到标准输出流。
此命令适用于多核 CPU 环境下高效运行的应用场景。
---
#### 自定义路径挂载 Gradio 接口
如果需要集成其他工具如 Gradio 到 FastAPI 中,则可参考官方文档中的自定义路径挂载案例:
```python
from fastapi import FastAPI
import gradio as gr
CUSTOM_PATH = "/gradio"
app = FastAPI()
@app.get("/")
def read_main():
return {"message": "This is your main app"}
io = gr.Interface(lambda x: "Hello, " + x + "!", "textbox", "textbox")
app = gr.mount_gradio_app(app, io, path=CUSTOM_PATH)
if __name__ == "__main__":
import uvicorn
uvicorn.run(app, host="0.0.0.0", port=8000)
```
上述脚本允许你在同一进程中同时提供 FastAPI 和 Gradio 功能接口。例如,Gradio 页面可通过 `http://localhost:8000/gradio` 访问。
---
### 总结
无论是简单的开发测试还是复杂的大规模部署,都可以借助不同的工具灵活地运行 FastAPI 应用。在实际项目中,还需要考虑安全性、负载均衡以及监控等因素。
阅读全文
相关推荐


















