商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > Ruff 中如何替代 isort 实现导入语句自动排序?

Ruff 中如何替代 isort 实现导入语句自动排序?

  发布于2026-07-20 阅读(0)

扫一扫,手机访问

Ruff 本身不支持在 ruff format 中排序 import,需要配合 ruff check --select I --fix 单独执行 import 排序,再运行格式化命令,这才能实现与 isort + black 类似的双步自动化流程。

Ruff 本身不支持在 ruff format 中排序 import,需要配合 ruff check --select I --fix 单独执行 import 排序,再运行格式化命令,这才能实现与 isort + black 类似的双步自动化流程。

从 2023 年开始,Ruff 就把代码格式化(ruff format)和代码检查(ruff check)拆成了两个独立的子命令。这里的关键点在于:导入排序(import sorting)属于 linting 的范畴,由 ruff check 负责,而不是格式化器。换句话说,即使你习惯了用 ruff format . 来替代 black,也别指望它能顺手搞定 import 排序——这活儿,isort 才是正主,而 Ruff 的对应能力在 check 那边。

那么,要完全替代 isort,该怎么办?推荐下面这个两步组合命令(按顺序执行):

ruff check --select I --fix .
ruff format .
  • --select I 表示只启用所有以 I 开头的规则(比如 I001 未排序导入、I002 缺失必需空行等等),精准锁定 import 整理,不干扰其他检查项;
  • --fix 启用自动修复,全程无需人工干预;
  • 两步可以安全地串联在一起(例如 ruff check --select I --fix . && ruff format .),非常适合集成到 CI/CD 流水线或者 pre-commit 钩子里。

⚠️ 需要注意几个细节:

  • 确保 Ruff 版本 ≥ v0.5.0(推荐 ≥ v0.6.0)。早期版本中,import 规则可能没有默认启用,或者行为上有些差异,升级后才稳妥;
  • 如果项目没有配置文件(比如 ruff.tomlpyproject.toml),上面的命令照样可以开箱即用,对小型项目来说非常友好;
  • 要是想自定义排序逻辑(比如按字母顺序、分组策略、第三方/标准库/本地模块的顺序),那就需要创建配置文件,在 [tool.ruff.isort] 下设置选项(例如 known-first-party = ["myapp"])。否则,Ruff 会采用默认的 isort 兼容策略。

总结一下:Ruff 并没有追求“一条命令包打天下”,而是通过职责分离,提供了一种更可控、更可组合的开发体验。用 ruff check --select I --fix 替代 isort,再配合 ruff format 完成其余格式化任务,既轻量又可靠,是现代 Python 小型项目非常理想的选择。

本文转载于:https://www.php.cn/faq/2323713.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注