1. 程式人生 > 其它 >Python - 好用第三方庫 isort

Python - 好用第三方庫 isort

背景

PEP8 有建議 Python 模組中 import 的匯入順序

  1. 首先引入標準庫裡的模組
  2. 然後引入第三方模組
  3. 最後引入自己的模組

屬於同一個部分的 import 語句按字母順序排列

isort 的作用

可以自動將 Python 模組中的 import 進行排序,並自動按型別劃分以滿足上面說的 PEP8 規範

安裝 isort

pip install isort

實際效果

沒有 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")

執行 isort 命令

isort isort_test.py

isort之後

from __future__ import
absolute_import import os import sys from my_lib import Object, Object2, Object3 from third_party import ( lib1, lib2, lib3, lib4, lib5, lib6, lib7, lib8, lib9, lib10, lib11, lib12, lib13, lib14, lib15, ) print("Hey") print("yo")

可讀性和可維護性提高不要太多!

isort 的具體使用

指定檔案

isort mypythonfile.py mypythonfile2.py

當前目錄所有檔案

isort .

檢視修改建議,但不會修改檔案

isort mypythonfile.py --diff

常用命令列引數

--check-only、-c

  • 使用 -c 執行程式碼來驗證程式碼的格式是否正確
  • 任何包含錯誤排序和/或格式匯入的檔案都將輸出到 stderr

--skip、-s

跳過指定檔案,可以是檔名、目錄名、檔案路徑

--force-single-line-imports

強制所有 import 都出現在單行上

官方文件

實在太多命令列引數了,用到再查吧,預設不用引數也完全夠用了

https://pycqa.github.io/isort/docs/configuration/options.html