安装 FastAPI 与 ASGI 服务器
本教程共 50 篇 · 第 3 篇 · 更新于 2026-08-12 · 约 6 分钟阅读
本节目标:在虚拟环境里装好 FastAPI 与运行它所需的 ASGI 服务器,并学会验证版本是否装对。
3-1 先确认你在虚拟环境里
装包之前,先确认终端前面有 (venv) 标记。如果上一步激活过,通常还留着。
(venv) $
要是不小心退出了,重新进入项目目录并激活:
# Windows
venv\Scripts\activate
# macOS / Linux
source venv/bin/activate
只有在 (venv) 状态下安装,FastAPI 才会进到本项目的小房间里,不会污染全局 Python。
Tip不确定当前是否在环境里?看命令行前缀有没有
(venv)最直观。没有就先激活再装。
3-2 一句话装好 FastAPI 全家桶
最省事的装法,是用方括号里的 standard 额外组件:
python -m pip install "fastapi[standard]"
这行命令会一次性装好 FastAPI,以及一组”标准配套”包。等于官方帮你把常用依赖都备齐了。
注意命令里的引号不能省。在有些终端里,方括号会被当成特殊符号,加上双引号最稳妥。
Note用
python -m pip而不是单独pip,能保证包装进当前激活的虚拟环境,避免装到系统全局去。
3-3 fastapi[standard] 到底装了啥
standard 不是空名字,它把一批常用依赖打包带了进来。了解它们各自干嘛,心里更有底。
Uvicorn:ASGI 服务器,真正把你的应用跑起来。这是运行 FastAPI 的发动机。
email-validator:当你声明邮箱类型字段时,它负责按标准校验邮件格式。
httpx:一个现代 HTTP 客户端。FastAPI 的测试客户端就基于它,方便你写接口测试。
jinja2:模板引擎。以后你想返回 HTML 页面而非纯 JSON 时会用到。
python-multipart:支持表单数据和文件上传。没有它,接收 Form 和 File 会报错。
Uvicorn 的附加项(uvicorn[standard]):包括 uvloop 和 httptools,能进一步提升运行速度,后面会单独说。
可以看到,fastapi[standard] 几乎覆盖了入门到进阶的大部分需求,新手不用再东拼西凑。
Note
fastapi[standard]已自带pydantic-settings(用于从环境变量、.env文件读取配置),自 0.116.0 起它就在 standard 组里,无需额外安装。只有裸pip install fastapi才需要单独python -m pip install pydantic-settings。另外pydantic-extra-types、orjson、ujson等仍是可选依赖,按需安装即可。
3-4 单独聊一聊 Uvicorn
FastAPI 本身只是个框架,它定义了”接口怎么写”,但”怎么把接口跑成服务”要靠服务器。
Uvicorn 就是那个服务器,而且是 ASGI 标准的。ASGI 是异步网关接口,对应老式的 WSGI,能更好地发挥异步性能。
fastapi[standard] 已经顺带装了 Uvicorn,所以多数情况你不用再单独装。但想让 Uvicorn 跑得更快,可以补装它的标准扩展:
python -m pip install "uvicorn[standard]"
这会把 uvloop(高性能事件循环)和 httptools(高性能 HTTP 解析器)一起装进来。
Tip偷懒记法:入门用
fastapi[standard]够了;想压榨性能,再补一条uvicorn[standard]。
3-5 验证 FastAPI 装好了没
装完别急着写代码,先确认版本对不对。最直接的方式是在 Python 里打印版本号:
python -c "import fastapi; print(fastapi.__version__)"
如果安装成功,会打印:
0.141.1
能看到 0.141.1 就说明装对了。
Note要是提示”fastapi 不是内部或外部命令”,多半是没在虚拟环境里,或安装中途失败。重新激活环境、再跑一遍安装命令。
3-6 也可以用命令行确认 CLI 工具
fastapi 命令行工具随 fastapi[standard] 一起安装。运行 fastapi --version 会打印 FastAPI CLI 自身的版本号(注意不是 FastAPI 框架版本):
FastAPI CLI version: 0.0.32
这能证明 fastapi 命令可用,后面启动项目就靠它。但查看框架版本,用上一节的 python -c "import fastapi; print(fastapi.__version__)" 更准确。
Tip顺手也确认下 Uvicorn:
python -c "import uvicorn; print(uvicorn.__version__)"。能打印版本号即代表服务器就位。
3-7 顺便看一眼都装了哪些包
想回顾环境里现在有哪些依赖,用 pip list 或 pip freeze 即可:
python -m pip list
你会看到 fastapi、uvicorn、pydantic、starlette 等名字都在列。它们正是 FastAPI 运行所依赖的生态。
pip freeze 还会带上精确版本号,适合把当前环境导出成 requirements.txt 供他人复现。
Note之后如果要把项目交给别人,执行
pip freeze > requirements.txt,对方用pip install -r requirements.txt就能装出一模一样的环境。
3-8 安装太慢?换源加速(可选)
在国内网络下,pip install 有时很慢甚至超时。这时可以把下载源换成国内镜像,速度会明显提升。
以清华镜像为例,在命令后加 -i 参数:
python -m pip install "fastapi[standard]" -i https://pypi.tuna.tsinghua.edu.cn/simple
豆瓣、阿里云等也提供类似镜像,用法一样,只是把地址换掉。
Tip如果经常用某个镜像,可把它写成 pip 的全局配置,以后不加
-i也走镜像。新手先用命令行的-i方式最直观。
3-9 小结与下一步
这一章你完成了最关键的一步:把 FastAPI 和它需要的服务器真正装到了机器上。
回顾核心命令:
python -m pip install "fastapi[standard]" # 装框架与标准组件
python -m pip install "uvicorn[standard]" # 可选,提升性能
fastapi --version # 校验版本
环境有了、框架装了,下一章我们就写出人生第一个 FastAPI 接口,并把它在本地跑起来。