Python 教程
本节涵盖 Python 工程实践、工具链和现代开发工作流。
文档目录
| 文档 | 说明 |
|---|---|
| Python 工程指南 | 项目结构、依赖管理和最佳实践 |
| pyproject.toml 指南 | 使用 pyproject.toml 的现代 Python 项目配置 |
| uv 指南 | 快速 Python 包管理器和项目管理 |
| Python 工具简介 | 代码质量工具:Linter、格式化器和类型检查器 |
代码质量工具概述
Python 拥有成熟的代码质量工具生态系统,帮助维护一致性、尽早发现 Bug 并强制执行标准。
工具分类
| 分类 | 用途 | 示例 |
|---|---|---|
| Linter | 发现错误、Bug 和风格问题 | Pylint、Flake8、Ruff |
| 格式化器 | 强制一致的代码风格 | Black、Ruff |
| 类型检查器 | 验证类型注解 | MyPy、Pyright |
| 导入排序器 | 组织 import 语句 | isort、Ruff |
推荐:Ruff
Ruff 是一个用 Rust 编写的现代一体化 Python Linter 和格式化器。它用一个极快的工具替代了 Flake8、isort、Black 等多个工具。
为什么选择 Ruff?
| 方面 | 传统工具栈 | Ruff |
|---|---|---|
| 需要的工具 | Flake8 + isort + Black + MyPy | 仅 Ruff |
| 速度 | 30-60 秒 | 1-3 秒 |
| 配置 | 多个配置文件 | 单一 pyproject.toml 段 |
| 自动修复 | 有限 | 全面 |
快速开始
# 安装
pip install ruff
# Lint 并自动修复
ruff check --fix src/
# 格式化
ruff format src/
基础配置
[tool.ruff]
line-length = 88
target-version = "py38"
[tool.ruff.lint]
select = ["E", "F", "UP", "B", "SIM", "I", "N"]
ignore = ["E501"]
传统工具(供参考)
| 工具 | 用途 | 速度 | 状态 |
|---|---|---|---|
| Pylint | 全面 Lint(200+ 规则) | 慢 | 成熟,深度分析仍有价值 |
| Black | 不妥协的格式化器 | 中等 | 广泛采用的标准 |
| MyPy | 静态类型检查 | 慢 | 类型化代码库必备 |
| Flake8 | Lint 封装(PyFlakes + pycodestyle) | 中等 | 正在被 Ruff 取代 |
详细的对比和迁移指南请参阅 Python 工具简介。