现代 Python 开发环境最佳实践(2024+)
本文总结了当前主流 Python 项目在依赖管理、代码风格、类型检查、测试与工具链方面的最佳实践,旨在帮助开发者快速构建高质量、可维护的 Python 应用。
目录
环境管理:使用
uv替代 pip+venv+pyenv依赖管理:使用
pyproject.toml统一依赖声明Lint 与格式化:
ruff一键搞定类型检查:使用
pyright或mypy测试与覆盖率:
pytest+coverage虚拟环境隔离:项目级
.venv最简单VSCode 集成开发体验
额外建议
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)大大简化了开发体验。掌握这些工具,能够让你的项目在稳定性、协作性和可维护性方面大幅提升。