FEATURED · 精选文章

Ruff的900+内置Lint规则全清单:一键替代Flake8、Pylint、Bugbear的终极规则集

发布时间 / 2026/9/3 10:24:55
来源 / 创域科博编辑部
栏目 / 资讯中心
Ruff的900+内置Lint规则全清单:一键替代Flake8、Pylint、Bugbear的终极规则集 Ruff的900内置Lint规则全清单一键替代Flake8、Pylint、Bugbear的终极规则集【免费下载链接】ruffAn extremely fast Python linter and code formatter, written in Rust.项目地址: https://gitcode.com/GitHub_Trending/ru/ruff你是否还在同时维护 Flake8、Pylint、pycodestyle、isort、pyupgrade 好几个检查器Ruff 是用 Rust 编写的极速 Python Linter代码检查器与格式化工具内置900 条 Lint 规则原生复刻了 Flake8 及其数十个流行插件包括 flake8-bugbear、pylint 等的规则集速度快 10~100 倍一条命令即可替换你现有的整套检查工具链。为什么是 Ruff一个工具替代五个传统 Python 项目的代码质量检查往往要拼装一堆工具各管一摊原有工具负责什么Ruff 对应规则前缀Pyflakes未使用导入、未定义变量Fpycodestyle缩进、空格、行宽等风格E/Wflake8-bugbear隐蔽 Bug、坏味道Bpyupgrade语法现代化升级UPisortimport 排序Imccabe圈复杂度C90pylint约定/错误/重构类检查PLflake8-simplify代码简化建议SIMpydocstyle文档字符串规范D而 Ruff 把这些规则全部用 Rust 原生重新实现而非调用插件因此才能做到扫描整个 CPython 级别的代码库只需几秒甚至快到你故意写错代码确认它真的在跑。Ruff 由 Astral 团队开发维护该团队同时也是 uv 和 ty 的作者被 Apache Airflow、FastAPI、Pandas、SciPy 等主流开源项目采用。900 规则全清单看懂规则代码系统Ruff 沿用了 Flake8 的规则代码体系1~3 个字母前缀 3 位数字如F401。前缀代表规则来源这也是快速定位某条规则属于哪个工具的关键。打开 crates/ruff_linter/src/rules/mod.rs 可以看到 Ruff 内置的59 个规则模块以下是常用的前缀速查表核心前缀速查按使用频率排序F— Pyflakes未使用的导入、语法错误类问题默认开启E/W— pycodestyle错误与警告级风格问题默认开启B— flake8-bugbear如B006可变默认参数、B904raise 应带 fromUP— pyupgrade如UP006typing.List→list默认开启I— isortimport 排序与分组SIM— flake8-simplify如SIM105可改用contextlib.suppressPL— pylint按严重度细分C约定/R重构/W警告/E错误RUF— Ruff 自有规则如RUF012class-var 注解缺失默认开启C90— mccabe 圈复杂度D— pydocstyle 文档字符串S— flake8-bandit 安全硬编码密钥、危险函数N— pep8-naming 命名PERF— perflint 性能PT— flake8-pytest-styleTRY— tryceratops 异常处理PTH— 建议改用 pathlibRET— 返回值简化FLY— f-string 转换ERA— 注释掉的代码TID— 导入整洁度LOG— logging 规范更多小众但实用的模块还包括AIRAirflow、FASTFastAPI、PANDpandas-vet、NPnumpy、DTZdatetime 时区、TCHtype-checking 导入等全部规则可查阅 docs/linter.md。 想弄清某条规则的语义分类Error/Warning/Convention/Refactor可参考 crates/ruff_linter/src/upstream_categories.rs它定义了各前缀与 Pylint 风格的严重度映射。3 行配置如何挑选你的规则集Ruff 通过pyproject.toml中的lint.select/lint.ignore选择规则组支持全码F401或前缀F两种粒度[tool.ruff.lint] # 启用 E、F 两个前缀的所有规则 select [E, F] # 单独关闭某条规则 ignore [F401]推荐的入门方案官方在 docs/linter.md 中给出的建议零配置直接跑Ruff 默认已开启F、E、B、UP、RUF等规则组足以捕获未使用导入、常见 Bug 等问题渐进式加码从小集合出发逐组加入。最流行的不啰嗦但够严格组合是EFUPBSIMI谨慎使用ALL它会启用全部 900 条规则且每次升级都会隐式启用新规则开启ALL时 Ruff 会自动禁用如D203与D211这类相互冲突的文档字符串规则。一键修复ruff check --fixRuff 的一大杀手锏是自动修复大量规则如删除未使用导入、现代化语法升级不仅报错还能直接改写代码。ruff check # 检查当前目录 ruff check --fix # 自动修复可修复的问题 ruff check --watch # 监听文件变化增量检查配合内置缓存未变更的文件不会重复分析大型仓库的日常检查几乎无感。快速上手安装与最小配置pip install ruff ruff check .如果仓库是从 GitCode 获取的git clone https://gitcode.com/GitHub_Trending/ru/ruff再写一个最小配置pyproject.toml[tool.ruff.lint] select [E, F, UP, B, SIM, I]到这里你的项目已经获得了一个比 Flake8 快百倍、规则覆盖面却广得多的检查器。后续想加文档字符串规范D、安全扫描S、复杂度控制C90只需在select里补一个前缀。总结一张清单带走你的需求Ruff 方案替代 Flake8 一堆插件一套前缀覆盖 Pyflakes/pycodestyle/Bugbear 等 59 个规则模块替代 Pylint 风格检查PL前缀 约定/重构/警告/错误四级分类替代 isort / pyupgradeI与UP前缀且支持自动修复大仓库性能瓶颈Rust 实现 内置缓存10~100 倍速度提升单条规则粒度的开关select/ignore精确到F401级别核心要点一句话先跑默认规则集再按需追加前缀最后用--fix让 Ruff 替你改代码。完整规则文档见 docs/linter.md规则源码索引见 crates/ruff_linter/src/rules/。【免费下载链接】ruffAn extremely fast Python linter and code formatter, written in Rust.项目地址: https://gitcode.com/GitHub_Trending/ru/ruff创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED — 相关阅读

相关资讯

LATEST — 最新资讯

最新发布

TODAY — 本日精选

新闻

WEEKLY — 本周精选

新闻

MONTHLY — 本月精选

新闻