架构技术评论

现代 Python 开发环境最佳实践(2024+)


本文总结了当前主流 Python 项目在依赖管理、代码风格、类型检查、测试与工具链方面的最佳实践,旨在帮助开发者快速构建高质量、可维护的 Python 应用。


目录

  1. 环境管理:使用 uv 替代 pip+venv+pyenv

  2. 依赖管理:使用 pyproject.toml 统一依赖声明

  3. Lint 与格式化:ruff 一键搞定

  4. 类型检查:使用 pyright 或 mypy

  5. 测试与覆盖率:pytest + coverage

  6. 虚拟环境隔离:项目级 .venv 最简单

  7. VSCode 集成开发体验

  8. 额外建议


1. 环境管理:使用 uv 替代 pip+venv+pyenv

uv 是 Astral 团队(同为 ruff、pydantic 开发者)推出的现代 Python 包管理工具,集成了:

  • Python 版本下载(类似 pyenv)

  • 虚拟环境管理(替代 venv)

  • 依赖锁定与安装(替代 pip + pip-tools)

快速上手

uv python install 3.12
uv venv --python 3.12
source .venv/bin/activate
uv sync

2. 依赖管理:使用 pyproject.toml 统一依赖声明

推荐项目使用 pyproject.toml 作为唯一依赖配置文件,格式统一、易于托管。

[project]
name = "myproject"
version = "0.1.0"
dependencies = [
  "fastapi",
  "uvicorn[standard]"
]

[project.optional-dependencies]
dev = ["ruff", "pytest", "httpx"]

3. Lint 与格式化:ruff 一键搞定

ruff 是目前最快、功能最全的 Python Linter,兼容 flake8、pylint、isort、black 部分功能。

配置示例:

[tool.ruff]
line-length = 88
target-version = "py312"
extend-select = ["I"]  # import 排序
fix = true

常用命令:

ruff check .          # Lint 检查
ruff check . --fix    # 自动修复

4. 类型检查:使用 pyright 或 mypy

静态类型提升大型 Python 项目的可维护性。推荐使用:

  • pyright:速度快,VSCode 内置支持

  • mypy:语法更严谨,支持细粒度配置

pyright 使用方式:

安装:

npm install -g pyright

VSCode:安装 Pylance 插件并启用类型检查:

"python.analysis.typeCheckingMode": "basic"

5. 测试与覆盖率:pytest + coverage

Python 最主流的测试组合:

uv pip install pytest coverage

运行:

pytest
coverage run -m pytest
coverage report

6. 虚拟环境隔离:项目级 .venv 最简单

始终在项目根目录下使用 .venv,便于 VSCode 自动识别和团队统一开发。

建议 .gitignore 添加:

.venv/
uv.lock

7. VSCode 集成开发体验

插件建议:

  • Python

  • Pylance

  • Ruff

.vscode/settings.json 推荐配置:

{
"python.defaultInterpreterPath": ".venv/bin/python",
"python.linting.enabled": true,
"python.linting.ruffEnabled": true,
"python.analysis.typeCheckingMode": "basic",
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.fixAll": true
  }
}

8. 额外建议

  • 配置 CI(如 GitHub Actions)自动运行 lint / test / type-check

  • 文档推荐使用 mkdocs-material

  • 推荐结构化日志,如 loguru

  • 对于大型项目,强烈建议启用全项目 mypy 类型检查


结语

现代 Python 生态已不再混乱,新一代工具(如 uv, ruff, pyright)大大简化了开发体验。掌握这些工具,能够让你的项目在稳定性、协作性和可维护性方面大幅提升。