isort 是什么
isort 负责 Python 导入语句的排序与分组:按标准库、第三方、本地包分组,组内按字母序排列。与 Black 同用时选用它的 black 预设可以避免两边互相覆盖;如果项目已经使用 Ruff,同样的能力由导入排序规则提供,不必再多装一个工具。
基本信息
| 分组 | 标准库、第三方、本地包 |
|---|---|
| 兼容配置 | black 预设,与 Black 对齐 |
| 检查模式 | 只检查不改动,适合放进流水线 |
| 替代方案 | Ruff 的导入排序规则 |
典型使用场景
- 新项目配置:一次选好预设,导入顺序完全交给工具
- 与 Black 同用:使用 black 预设避免格式冲突
- 合并冲突高发区治理:导入块不再需要手工维护
- 迁移到 Ruff:把导入排序一并交给聚合工具
- 存量仓库:先全量整理一次,再把检查接进流水线
配置注意点
- 预设要与格式化工具保持一致
- 配置文件统一放在一处,避免多份并存
- 检查模式用于流水线,修复模式用于本地
- 分组规则如有特殊约定,写进配置而不是靠人工
用法
用法
isort --profile black .
isort --check-only --diff . # 检查模式,适合 CI
# 使用 Ruff 时:ruff check --select I .常用命令与用途
| 命令 | 用途 |
|---|---|
| isort . | 就地整理全部导入 |
| --check-only | 只检查,不改动文件 |
| --diff | 输出将要修改的差异 |
| --profile black | 与 Black 对齐分组与换行风格 |
在评审中怎么用
- 导入顺序类差异直接提示跑一遍格式化命令
- 新增依赖时确认分组规则是否仍然适用
- 配置改动与业务改动分开提交
- 迁移到聚合工具时同步删除旧配置
导入顺序是合并冲突的高发区:交给工具之后,评审就不必再讨论顺序问题。
导入块交给工具之后,合并冲突量会明显下降,评审意见也就能留给真正重要的问题。
不配预设:与格式化工具互相打架,导入块来回震荡。