Linter 是一种代码检查工具,可以帮助我们改进代码:包括检查代码中的语法错误、编码风格问题和潜在的漏洞,并提供建议和修正方法 ,Python 常见的 Linter 工具包括 Flake8, Pylint 等等,这里介绍我比较常用的ruff 用 Rust 编写的,除了快就是快 官网实测结果

如果有vscode的话,直接安装ruff,点击下方连接安装或到插件市场搜ruff安装即可
https://marketplace.visualstudio.com/items?itemName=charliermarsh.ruff

注意如果在vscode装了ruff,就没必要pip install ruff了,因为自带了。
Ruff 的配置也很简单,一般配置在.vscode/settings.json下配
"[python]": { // 仅对 python 文件生效
"editor.defaultFormatter": "charliermarsh.ruff", // 默认使用 Ruff 格式化
"editor.formatOnSave": true, // 保存时自动格式化
"editor.codeActionsOnSave": {
"source.fixAll.ruff": "explicit", // 保存时自动修复可修复的 lint 错误
"source.organizeImports.ruff": "explicit", // 保存时自动排序 import 语句
}
},
也支持在 pyproject.toml 或 ruff.toml 中配置,这里以 PEP518 推荐的 pyproject.toml 为例
[tool.ruff]
line-length = 120 # 代码最大行宽
select = [ # 选择的规则
"F",
"E",
"W",
"UP",
]
ignore = ["F401"] # 忽略的规则
一些常见的命令行用法
# 查看ruff帮助文档
ruff help
# 检查当前目录下文件的错误,并重新检查当文件修改的时候
# uvx ruff check --watch
# uv tool run ruff check --watch
ruff check --watch
# ruff默认之后执行安全的修复,不会执行不安全的修复,如果想要执行不安全修复,可以使用--unsafe-fixes参数
# 显示所有不安全的修复
ruff check --unsafe-fixes
# 执行所有不安全的修复
ruff check --fix --unsafe-fixes
官方文档
规则说明 https://docs.astral.sh/ruff/rules/ 使用说明文档 https://docs.astral.sh/ruff/