isort 是一个自动对 Python 文件中的 import 语句进行排序的工具,遵循 PEP8 规范或自定义规则,有助于提高代码可读性和一致性。

安装 :

pip install isort

安装完成后,isort 命令即可在命令行中使用。

常见应用场景:

(1)整理杂乱无章的导入语句,使之自动按标准顺序排序。

(2)团队协作中统一导入风格,避免手动排序不一致。

(3)与 black、autopep8 等工具一起使用,实现全自动代码格式化。

(4)CI 检查:可集成到 Git Hook 或 CI 工具中检查导入是否规范。

◆ ◆

核心概念

1、导入分类

isort 将导入分为若干组(标准库、第三方库、本地模块等)。

2、自动排序

默认根据 PEP8 的顺序,自动添加换行分组。

3、支持配置文件

支持 .isort.cfg、pyproject.toml 等配置方式,自定义规则。

4、兼容 black

isort 提供 --profile black 参数,使其排序风格兼容 black 格式化风格。

◆ ◆

基本用法

1、对单个文件进行排序

isort example.py

2、对整个项目目录进行排序

isort .

3、检查而不修改(只输出是否符合规范)

isort --check-only example.py

4、与 配合使用(推荐)

isort --profile black example.py
black example.py

5、在 Python 代码中调用

import isort
isort.file("example.py")

◆ ◆

进阶技巧

配置文件统一规则(如 pyproject.toml):

[tool.isort]
profile = "black"
line_length = 88
known_third_party = ["requests", "flask"]
known_first_party = ["myproject"]
multi_line_output = 3
include_trailing_comma = true

将上述配置写入 pyproject.toml 后,运行 isort 将自动读取并应用。

◆ ◆

常用命令参数解释

--check-only

检查导入顺序是否符合规范,但不自动修改。

--diff

显示修改前后的差异(适合配合 --check-only 使用)。

--recursive

递归处理目录(现代版本默认支持,无需手动加)。

--profile

指定排序风格,如 black、django、google 等。

--skip

跳过某些文件或目录,例如:--skip venv

--filter-files

配合目录时,只处理指定后缀(如 .py)的文件。

◆ ◆

补充说明

1、isort 可配合 pre-commit 钩子,实现 Git 提交前自动排序导入。

2、与 black 一起使用时,请先运行 isort,再运行 black。

3、如果你使用的是 VS Code,可以通过插件设置让保存文件时自动执行 isort。

4、isort 是格式化工具,不改变代码功能,适用于所有阶段的项目开发。

点赞有美意,赞赏是鼓励