Astral 出品,Rust 写的 Python 代码质量工具——10-100 倍速度,一个二进制替代 Flake8、Black、isort、pydocstyle、pyupgrade
过去 Python 的代码质量生态是"一堆小工具拼凑"——Flake8 查风格、pyflakes 查错误、pylint 做类型检查、isort 排导入、Black 格式化、pydocstyle 查文档字符串、pyupgrade 升级语法。每个都要单独装、单独配、单独跑,在几万行的代码库上跑完要几分钟到十几分钟。
Ruff 把这些工具用 Rust 重写并合并进一个二进制,速度快 10-100 倍:ruff check 检查,ruff format 格式化,ruff check --fix 自动修复。官方已经实现了 Flake8 及其 80+ 个插件、Black、isort、pydocstyle、pyupgrade、bandit、autoflake 的大部分功能。FastAPI、Pandas、Polars、Airflow、HuggingFace、CPython 自己都已迁移到 Ruff。
本教程 10 章覆盖:安装与第一次使用、规则体系、配置文件、自动修复、ruff format、noqa 与忽略、编辑器集成、pre-commit、CI 接入、从 Flake8/Black 迁移。每章都有详细的名词解释和可运行示例。
六大特性让 Ruff 成为 2026 年 Python 开发的默认选择
Rust 实现 + 并行 AST 遍历,CPython 量级代码库秒级完成。
--fix 一键修复 70% 以上问题,safe/unsafe 两级分类。
99% 兼容 Black,速度快 30 倍,无需额外安装。
覆盖 F/E/W/B/S/N/UP/I 等数十个规则族,即开即用。
官方 VS Code / JetBrains 插件,LSP 协议毫秒级响应。
GitHub Actions、pre-commit、统一配置 pyproject.toml。
从第一次 ruff check 到 CI 全量接入,10 章打通整条链路
Ruff 是什么、与 Flake8/Black/pylint 的对比、为什么快、通过 uv/pipx/pip 安装、第一次运行。
规则前缀约定、Pyflakes(F) / pycodestyle(E/W) / flake8-bugbear(B) / pyupgrade(UP) / isort(I) 详解。
[tool.ruff] 配置详解、select/extend-select/ignore、line-length、target-version、per-file-ignores。
safe vs unsafe fix、--fix / --unsafe-fixes、--show-fixes、--diff 预览、批量重构实战。
ruff format 与 Black 兼容性、quote 风格、magic trailing comma、docstring 格式化、--check 模式。
行内 # noqa: E501、per-file-ignores、exclude、#ruff: noqa 文件级、unused noqa 检测。
Ruff LSP、VS Code 官方插件、PyCharm 插件、Neovim + nvim-lspconfig、保存自动修复与格式化。
.pre-commit-config.yaml、ruff-pre-commit 仓库、stages、与 mypy/其他钩子配合、提交前自动修复。
astral-sh/ruff-action、--output-format=github 注释、--statistics 汇总、缓存策略、PR 自动评论。
迁移步骤清单、规则对照表、常见差异、大型代码库分批次开启规则、联合 mypy 使用。