在Python开发中,Ruff 是一个由Rust编写的高性能代码检查器(linter)和格式化工具(formatter)。它的核心优势是速度极快(比传统工具如flake8、black快10-100倍),同时兼容大量主流Python代码规范(如PEP8、flake8、pylint等规则),能一站式解决代码质量检查和风格统一问题。

核心用途

  1. 代码检查(Lint):检测代码中的语法错误、不符合规范的风格(如命名不规范、缩进错误)、潜在bug(如未使用的变量、无效导入)等。
  2. 代码格式化(Format):自动调整代码风格(如缩进、换行、空格),确保团队代码风格统一(替代black、autopep8等工具)。

最常用场景

  • 开发实时检查:集成到IDE/编辑器(如VS Code、PyCharm),实时提示代码问题。
  • 提交代码前校验:作为pre-commit钩子,在代码提交前自动检查和格式化,避免不规范代码入库。
  • CI/CD流程:在持续集成中自动运行,阻断不符合规范的代码合并。

简明教程

1. 安装Ruff

使用pip安装(支持Python 3.7+):

pip install ruff
2. 基本使用:代码检查(Lint)

检查单个文件或目录:

# 检查单个文件
ruff check test.py

# 检查整个项目(当前目录)
ruff check .

示例输出:
如果代码中有未使用的变量x和行太长(超过88字符),会提示:

test.py:5:5: F841 Local variable `x` is assigned to but never used
test.py:10:89: E501 Line too long (90 > 88 characters)
3. 基本使用:代码格式化(Format)

自动修复可格式化的问题(如缩进、空格):

# 格式化单个文件(直接修改文件)
ruff format test.py

# 格式化整个项目
ruff format .

示例效果:
未格式化的代码:

def add(a ,b):return a+b

格式化后:

def add(a, b):
    return a + b
4. 配置Ruff(可选)

默认规则已覆盖大部分场景,如需自定义(如忽略特定错误、修改行宽),可在项目根目录创建pyproject.toml文件配置:

[tool.ruff]
# 忽略特定错误(如允许行宽超过88字符)
ignore = ["E501"]

# 修改行宽为120(默认88)
line-length = 120

# 仅检查/格式化特定文件类型
include = ["*.py", "*.pyi"]
5. 集成到编辑器(以VS Code为例)
  1. 安装VS Code的Ruff插件(作者:charliermarsh)。
  2. 打开设置(settings.json),配置默认格式化器和检查器:
{
  "editor.defaultFormatter": "charliermarsh.ruff",
  "editor.formatOnSave": true,  // 保存时自动格式化
  "ruff.lintOnSave": true       // 保存时自动检查
}

总结

Ruff凭借速度和多功能性,已成为Python开发中替代flake8+black组合的主流工具,尤其适合对效率和规范有要求的团队或项目。通过简单配置即可快速集成到开发流程中,显著提升代码质量和协作效率。

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐