isort:Python import 排序工具

写 Python 代码时,import 语句的整理属于重复工作。标准库、第三方库、本地模块的 import 混在一起,没有固定顺序。isort 的作用就是完成这个整理,按字母顺序排列 import,并按类型分块。

这个工具由 PyCQA 维护,六千多 Star,在 Python 社区使用范围广。

正文顶部截图

功能

isort 读取 Python 文件,把 import 重新排序。排序按字母顺序,同时把 import 分成几个区块:标准库、第三方库、本地模块各自独立。

看一个例子。排序前 import 可能是这样的:

from my_lib import Object
import os
from my_lib import Object3
from my_lib import Object2
import sys
from third_party import lib15, lib1, lib2
import sys
from __future__ import absolute_import

排序后变成:

from __future__ import absolute_import
import os
import sys
from third_party import (lib1, lib2, lib15)
from my_lib import Object, Object2, Object3

import 按顺序排列,重复项也合并了。可以一键应用到整个项目。

用法

安装:

pip install isort

处理单个文件:

isort mypythonfile.py

递归处理目录:

isort .

只查看改动,不写入文件:

isort mypythonfile.py --diff

也可以在 Python 代码里调用:

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

配置选项

isort 支持多种配置。多行 import 的换行方式有 12 种模式可选,缩进可用空格或 Tab,还能设置末尾逗号。

如果某个 import 不想被排序,在行尾加注释:

import module  # isort:skip

整个文件跳过的话,在模块 docstring 里加 isort:skip_file

README区域截图

编辑器集成

isort 有各类编辑器的插件,包括 VS Code、Vim、Emacs 等。可以和 black 配合使用。

pre-commit 也支持集成 isort,提交前自动检查 import 顺序。

使用建议

如果项目 import 比较多,或者多人协作时代码风格不一致,isort 能省下手动整理的时间。不少 Python 项目在用这个工具。

CI 流程里加上 isort --check-only 可以在提交前自动检查,格式不合规的代码会被拦下来。

安装简单,对现有代码改动小,适合作为团队的代码规范工具。

用这个工具。

CI 流程里加上 isort --check-only 可以在提交前自动检查,格式不合规的代码会被拦下来。

安装简单,对现有代码改动小,适合作为团队的代码规范工具。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐