阅读过《Google 开源项目风格指南——Python 语言规范》的同学都一定看到过,导入包是有一定顺序的。如果没有阅读过可以点这里查看。

这一重复但又必要的工作是否有工具帮我们完成呢? 可以试试 isort。

isort

项目地址

https://github.com/timothycrosley/isort

安装

python3 -m pip install isort -i https://mirrors.aliyun.com/pypi/simple

因为这个工具在任何项目中都会使用到,所以就在系统的默认 python 环境中安装。如果你只是想尝试一下,也可以在虚拟环境中安装:

pipenv install isort

使用

我们先来看一下使用效果。 使用前:

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, lib3, lib4, lib5, lib6, lib7, lib8, lib9, lib10, lib11, lib12, lib13, lib14

import sys

from __future__ import absolute_import

from third_party import lib3

print("Hey")
print("yo")

使用后:

from __future__ import absolute_import

import os
import sys

from third_party import (lib1, lib2, lib3, lib4, lib5, lib6, lib7, lib8,
                         lib9, lib10, lib11, lib12, lib13, lib14, lib15)

from my_lib import Object, Object2, Object3

print("Hey")
print("yo")

我们可以在命令行中使用:

isort mypythonfile.py mypythonfile2.py

或者

isort .

使用 isort . 会把当前目录及子目录全部格式化 import,有点类似 git 命令中的 git add .。 在 python 中使用:

import isort


isort.file("pythonfile.py")

在 PyCharm 中使用

如果我们不想每次格式化导入使用 isort 命令的话,可以配合 pycharm 使用。 首先我们需要确认一下 isort 的安装位置: Mac 系统可以这样查看:

➜  ~ which isort
/Library/Frameworks/Python.framework/Versions/3.8/bin/isort

然后需要在 PyCharm 中的 Preferences -> Tools -> Files Watchers 中添加新的内容,具体可以看下图:

这样每次在 PyCharm 保存文件的时候会自动格式化 import 导入的库,比较方便。

最后修改:2021 年 03 月 17 日 09 : 10 PM
☕️ 小站维护不易,打赏一杯咖啡可好?