uvicorn main.py 命令说明
bash
uvicorn main.py
等价于:
bash
uvicorn main:app
规则:
文件名:实例对象,main.py里面必须有变量叫app(FastAPI/Starlette 实例)
常用完整命令
bash
# 基础启动,默认 127.0.0.1:8000
uvicorn main:app
# 外部可访问,0.0.0.0,端口8000,开启热重载(开发用)
uvicorn main:app --host 0.0.0.0 --port 8000 --reload
# 指定工作进程数(生产环境,不要加 --reload)
uvicorn main:app --host 0.0.0.0 --port 8000 --workers 4
main.py 最小示例
python
运行
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def hello():
return {"msg": "hello uvicorn"}
常见报错
uvicorn: command not found
bash
# 方式1:全局安装
pip install uvicorn
# 或者用 python -m 调用,不用加到PATH
python -m uvicorn main:app --reload
AttributeError: module 'main' has no attribute 'app'
- main.py 没有定义
app = FastAPI() - 或者写错变量名,比如叫
api,那就要写uvicorn main:api
--reload仅开发使用,生产环境禁止开启 reload。
python -m uvicorn 写法(推荐,环境隔离不容易踩 PATH 坑)
bash
python -m uvicorn main:app --host 0.0.0.0 --port 8000 --reload