FastAPI环境搭建与项目初始化

📂 所属阶段:第一阶段 — 快速筑基(基础篇)
🔗 相关章节:FastAPI简介与优势 · Hello-World应用

目录

快速开始前置检查

FastAPI 对系统要求极低且宽泛,入门门槛非常友好。

软硬件/系统最低标准

  • 操作系统:Windows 7+ / macOS 10.12+ / 任意主流 Linux
  • Python:3.7+(推荐 3.10/3.11/3.12 最新稳定版)
  • 硬件:2GB RAM、500MB 可用空间、现代 CPU

本地环境快速扫盲

先打开终端(Windows 用 PowerShell/CMD,Mac/Linux 用 Terminal),确认基础工具:

# 优先看是否有python3/pip3
python3 --version  # Mac/Linux,显示类似 Python 3.12.3
python --version   # Windows/部分配置过的Mac/Linux
pip3 --version     # 同理查包管理工具
pip --version

如果未安装/版本过低,请参考:

  • Windows:去 Python官网 下载最新版,务必勾选「Add Python to PATH」
  • Mac:推荐 brew install python3
  • Linux:用对应包管理器(如 Ubuntu 的 sudo apt install python3 python3-pip

扫盲后别忘了升级 pip 到最新稳定版:

# Windows/Mac/Linux 通用(推荐,避免权限/调用混乱)
python3 -m pip install --upgrade pip

隔离环境:Python虚拟环境

强烈建议全程使用虚拟环境开发! 它能解决不同项目的包冲突、版本混乱、权限依赖问题。

方案选择:优先用官方内置 venv

Python 3.3+ 自带 venv,无需额外安装,够用且稳定。

创建并激活虚拟环境

# 1. 找个合适的位置创建项目文件夹,进入
mkdir my-fastapi-demo
cd my-fastapi-demo

# 2. 创建名为 venv 的虚拟环境(Windows/Mac/Linux 通用,用当前环境的python3)
python3 -m venv venv

# 3. 激活虚拟环境(关键:区分系统,激活后前面有(venv))
# Windows PowerShell/CMD
venv\Scripts\activate
# Mac/Linux
source venv/bin/activate

虚拟环境基础管理

# 退出虚拟环境(无论在哪都可以用)
deactivate

# 删除虚拟环境(彻底清空,直接删文件夹)
rm -rf venv  # Mac/Linux
rmdir /s venv  # Windows CMD

核心组件:FastAPI与Uvicorn

FastAPI 本身是 Web 框架,但需要一个 ASGI 服务器来处理网络请求,官方推荐 Uvicorn

安装方式:按需选择

# 基础版:只装框架+标准Uvicorn(带 websocket、static 支持)
pip install fastapi uvicorn[standard]

# 完整版:直接装框架+所有官方推荐依赖(form、模板、环境变量、邮箱验证等)
pip install "fastapi[all]"

# (可选)安装特定版本(避免未来API变动)
pip install fastapi==0.110.0 uvicorn[standard]==0.29.0

用 requirements.txt 锁定依赖

把当前环境的所有包版本保存下来,方便共享/部署:

# 导出当前依赖
pip freeze > requirements.txt

其他人拿到项目后,安装依赖只需一行:

pip install -r requirements.txt

标准项目结构搭建

合理的项目结构能提升代码可读性、可维护性,也为后续模块化、分层架构做准备。

我的推荐结构(中大型项目也能扩展)

my-fastapi-demo/
├── app/                    # 核心应用代码
│   ├── __init__.py         # 标识这是个Python包
│   ├── main.py             # 应用入口、路由挂载、全局配置
│   ├── api/                # API路由层(可分v1/v2/v3)
│   │   ├── __init__.py
│   │   └── v1/
│   │       ├── __init__.py
│   │       └── hello.py
│   ├── schemas/            # Pydantic数据验证模型(请求/响应体)
│   │   ├── __init__.py
│   │   └── common.py
│   ├── config/             # 项目配置(环境变量、Pydantic配置类)
│   │   ├── __init__.py
│   │   └── settings.py
│   └── utils/              # 通用工具类(日志、加密、工具函数)
│       └── __init__.py
├── tests/                  # 单元/集成测试代码
│   ├── __init__.py
│   └── test_hello.py
├── venv/                   # 虚拟环境(自动生成,别上传git)
├── requirements.txt        # 生产依赖(刚才生成的)
├── .gitignore              # Git忽略文件(后面会写)
└── README.md               # 项目说明文档

初始化核心文件

1. .gitignore(必须第一个写!)

防止把虚拟环境、缓存、配置中的敏感信息上传到 Git:

# 虚拟环境
venv/
env/

# Python缓存
__pycache__/
*.pyc
*.pyo
*.pyd

# IDE
.vscode/
.idea/

# 环境变量(敏感!)
.env
.env.local

2. app/main.py(应用入口)

from fastapi import FastAPI

app = FastAPI(
    title="我的FastAPI演示项目",
    description="这是一个用于演示环境搭建的标准FastAPI项目",
    version="0.1.0",
    openapi_url="/api/v1/openapi.json",  # 指定OpenAPI地址
    docs_url="/api/docs",  # Swagger UI文档地址(改短了)
    redoc_url="/api/redoc" # ReDoc文档地址
)

# 根路径测试
@app.get("/")
async def root():
    return {"message": "欢迎来到FastAPI演示项目!"}

# 健康检查接口(部署时常用)
@app.get("/health")
async def health_check():
    return {"status": "ok", "service": "FastAPI"}

VS Code开发工具配置

VS Code 是 FastAPI 开发的首选编辑器,以下配置能大幅提升开发效率:

1. 安装必要插件

打开 VS Code 左侧「扩展」,搜索并安装:

  • Python(官方必装,语法高亮、调试、代码补全)
  • Pylance(官方推荐,更好的类型提示)
  • Ruff(轻量级 Python 代码检查+格式化,替代 Black+Flake8+Isort)

2. 项目级配置

在项目根目录创建 .vscode/settings.json,覆盖全局配置,统一团队规范:

{
    // 绑定当前项目的虚拟环境Python解释器
    "python.defaultInterpreterPath": "${workspaceFolder}/venv/bin/python",
    // Windows下替换为:
    // "python.defaultInterpreterPath": "${workspaceFolder}\\venv\\Scripts\\python.exe",
    
    // 启用代码检查和格式化
    "python.linting.enabled": true,
    "python.linting.ruffEnabled": true,
    "python.formatting.provider": "ruff",
    
    // 保存时自动格式化、修复导入顺序
    "editor.formatOnSave": true,
    "editor.codeActionsOnSave": {
        "source.fixAll.ruff": true
    }
}

一键验证开发环境

现在所有东西都准备好了,用一行命令启动应用试试:

启动应用(开发模式)

# 在项目根目录(激活虚拟环境后)
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000

参数说明:

  • app.main:app:模块路径app.main + FastAPI实例名app
  • --reload:开发模式专用,修改代码后自动重启
  • --host 0.0.0.0:允许局域网内其他设备访问(可选)
  • --port 8000:指定端口(默认就是8000,可选)

验证访问

启动成功后,打开浏览器访问以下任意地址:

  1. 主页面http://127.0.0.1:8000/ → 看根路径返回的JSON
  2. 健康检查http://127.0.0.1:8000/health → 看状态
  3. Swagger UI(交互式文档)http://127.0.0.1:8000/api/docs → 点「Try it out」测试接口
  4. ReDoc(更美观的静态文档)http://127.0.0.1:8000/api/redoc

高频踩坑指南

1. Windows PowerShell 激活虚拟环境报错

错误无法加载文件,因为在此系统上禁止运行脚本
解决:以管理员身份打开 PowerShell,输入:

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

然后重新激活即可。

2. 端口被占用

错误OSError: [Errno 48] Address already in use
解决

  • 方案1:换端口启动:uvicorn app.main:app --port 8001
  • 方案2:杀掉占用8000端口的进程(不推荐新手)

3. 找不到模块 app

错误ModuleNotFoundError: No module named 'app'
解决:确保你是在项目根目录(my-fastapi-demo)启动的应用,别进到app目录里。


总结

恭喜你!FastAPI 的标准开发环境已经搭建完成,现在可以:

  1. 先看 Hello-World应用 写第一个有功能的接口
  2. 熟悉 Swagger UI 交互式文档
  3. 开始探索 FastAPI 的其他特性了!
- 全程在虚拟环境中操作 - 及时更新 requirements.txt - 用 .env 管理敏感配置(别上传git)