新一代 Python 代码纠错工具Ruff,突出一个字 作者: ciniao 时间: 2026-01-15 分类: AI文摘  在软件开发中,代码质量至关重要。为保证Python代码质量,开发人员需要使用优秀的代码检查工具。以下是几个常用的Python代码检查工具: **Pylint**:流行的Python代码检查工具,用于检查代码语法、风格和代码错误等问题,提供丰富的插件和配置选项。 **Flake8**:由Pint、Pyflakes和pep8三个库组成的Python代码检查工具,可检查语法错误、代码风格和各种代码错误,具有高度可配置性和易用性。 **Pyflakes**:Python代码静态分析工具,用于检测Python代码中的语法错误和未使用的变量、模块问题,也可检查Python模块导入语句的正确性。 **mypy**:类型注释检查器,用于检查Python代码的类型注释,确保代码中的注释与实际使用的变量和函数相匹配。 最近出现了一款开源的Python代码检查工具**Ruff**,相比Pylint、Flake8检查更迅速,兼容性更强,GitHub Star已达21K。 ## Ruff简介  Ruff是基于Python的代码检查工具,帮助在编写Python代码时发现潜在问题并提供修复建议。该项目采用**Rust**编写,比Python的Flake8和Black快10-100倍。  Ruff利用Rust Python的**AST解析器**,实现自己的AST遍历、visitor抽象和lint规则逻辑。其目标是比其他工具快几个数量级,同时提供代码检查、autofix等一站式解决方案。 Ruff可用来替换flake8(加上各种插件)、isort、pydocstyle、yesqa、eradicate、pyupgrade和autoflake,所有这些都比任何单独的工具执行速度快几十或数百倍。Ruff超越了传统linter的职责,而是作为一种高级代码转换工具,能够升级类型注释、重写类定义、对import导入进行排序等。 ## 主要功能特点 从Ruff官方介绍,目前有以下特点: - 支持pyproject.toml - 兼容Python 3.11 - 超过500条内置规则,与Flake8内置的规则集近乎对等 - 重新实现了数十个Flake8插件,如flake8-bugbear、flake8-comprehensions等 - 支持自动修复,可自动纠正错误(例如,删除未使用的导入) - 内置缓存,可避免重复分析未更改的文件 - 支持VS Code、Pycharm、Neovim、Sublime Text、Emacs等编辑器 - 对monorepo友好,具有分层和级联配置 其中着重的一点是对规则的支持。Ruff借鉴了流行的工具如Flake8、autoflake、isort、pyupgrade、yesqa等,然后用Rust重新实现了超过500条规则。它本身不支持插件,但是吸收了数十个常用的Flake8插件的设计,使得已囊括的规则范围比其它任何工具都大。 ## 安装和使用  Ruff在安装上非常简单,可以像其他第三方Python包一样通过pip安装: ```bash pip install ruff ``` 安装完成后,Windows会在Python版本Scripts目录下生成一个ruff.exe的可执行文件;MacOS会在Python版本bin目录下生成一个ruff的可执行文件。  ### 执行检查命令 1. **针对指定文件扫描** ```bash ruff check path/file.py ``` 2. **使用通配符进行扫描** ```bash ruff check path/*.py ``` 3. **在watch监控模式下运行Ruff**,当文件改变时自动执行: ```bash ruff path/ --watch ``` 4. **按照不同的目录和文件执行检查** ```bash ruff check . # 分析当前及子目录内的所有文件 ruff check path/to/code/ # 分析指定目录及子目录内的所有文件 ruff check path/to/code/*.py # 分析指定目录内的所有py文件 ruff check path/to/code/to/file.py # 分析file.py ``` 5. **还可以和pre-commit一起工作**: 最终,Ruff将生成一个报告文件,其中包含了检查结果和问题的详细信息。可以根据报告中的建议来修复代码中的问题。 ## 总结 Ruff可以在代码质量、代码规范、团队协作、持续集成等多种场景下应用。而且还有官方提供的VS Code插件,非常方便实用。但是目前还没有发布Pycharm的插件。 标签: none
评论已关闭