首页/开发/代码质量与评审速查/isort:导入排序与分组
规范与静态检查65 条

isort:导入排序与分组

isort 按约定排序 import:标准库、第三方、本地包分组;配合 profile=black 避免与 Black 的格式冲突,也可用 Ruff 的 I 规则替代。

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 对齐分组与换行风格

在评审中怎么用

  • 导入顺序类差异直接提示跑一遍格式化命令
  • 新增依赖时确认分组规则是否仍然适用
  • 配置改动与业务改动分开提交
  • 迁移到聚合工具时同步删除旧配置
导入顺序是合并冲突的高发区:交给工具之后,评审就不必再讨论顺序问题。
导入块交给工具之后,合并冲突量会明显下降,评审意见也就能留给真正重要的问题。
不配预设:与格式化工具互相打架,导入块来回震荡。

易错点

  • 不配预设:与 Black 互相打架,导入块来回震荡
  • 手工维护导入顺序:合并冲突频繁,却没有任何收益
  • 配置分散在多处:实际生效的分组规则与预期不一致
  • 全量整理与业务改动混在一次提交:真实变化被差异噪声掩盖
  • 把导入排序规则写进团队文档却不配工具:新人靠记忆维护,冲突照样发生
  • 在配置里整目录跳过检查:这些目录的导入块继续无约束增长

数据来源与参考

  • isort 官方文档(pycqa.github.io/isort)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌