Pythonを書いていると、いつの間にか import がぐちゃぐちゃになって「読みにくい…」「差分が汚い…」となりがちです😵💫
でもVSCode+isortを入れておけば、保存するだけで PEP8に沿ったimport整理が自動で走るようになります✨
Python開発を行う際、コードの読みやすさとメンテナンス性を高めるために、インポートの順序が重要です。PEP8、Pythonのコーディング標準では、インポートは標準ライブラリ、サードパーティライブラリ、ローカルライブラリの順に分類し、各セクション間に空行を入れることを推奨しています。この手動での整理作業を自動化するツールが、静的解析ツールisortです。
py -m pip install isortを実行し、isortをインストールします。settings.jsonファイルに追加します。これにより、ファイル保存時に自動的にインポート順が整理されます。設定前のsettings.json例:
{
"python.formatting.provider": "black",
"editor.formatOnSave": true,
}
設定後のsettings.json例:
{
"python.formatting.provider": "black",
"editor.formatOnSave": true,
"isort.check": true,
"editor.codeActionsOnSave": {
"source.organizeImports": true
}
}
isortをVSCodeに設定することで、Pythonのインポート順をPEP8に準拠して自動的に整理できるようになります。これにより、コードの可読性が向上し、開発効率が高まります。設定は簡単で、VSCodeの拡張機能を活用することで、面倒なインポート整理の作業から解放されます。
PEP8では、importは次の順でグルーピングし、グループ間は空行で区切るのが推奨です👇
os, sys)requests, numpy)from . import xxx)このルールを守ると…🎉
そこで活躍するのが isort です🛠️
isortは、Pythonのimportをルールに沿って 並べ替え&整形してくれるツールです✨
手作業で直す時間がゼロに近づきます⌛➡️0へ
以下は、参考記事にある流れをベースに、実務でハマりにくい形に整理した手順です✅
ターミナルで実行👇
py -m pip install isort
※ 参考記事でも py -m pip install isort の形で紹介されています
VSCodeの拡張機能で “isort” を検索してインストールします。
(拡張は ms-python.isort として提供され、isortを使ったimport整形を行います)
参考記事の例では、settings.json に isort関連を追加して保存時に整理する形です
基本形はこんなイメージ👇
{
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.organizeImports": true
},
"isort.check": true
}
ただし最近のVSCodeでは、source.organizeImports が true/false ではなく "explicit" 推奨になっているケースがあります🧠
(旧 true 相当の挙動を得るなら "explicit" にする、という情報がまとまっています)
迷ったら、まずはこれがおすすめ👇(Pythonだけに適用して安全運用🛡️)
{
"[python]": {
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.organizeImports": "explicit"
}
}
}
Blackとisortは、デフォルト設定のままだと import整形が衝突して差分が行ったり来たりすることがあります😇
Black公式も「isortと競合する」点に触れています
対策は簡単で、isort側を Black互換プロファイルに寄せます✅
[tool.isort]
profile = "black"
これで、CLI・pre-commit・VSCodeなど呼び出し元が何でも「Black互換」で揃いやすくなります
settings.json が ユーザー設定ではなく、必要なら ワークスペース設定にも入っているか確認📁source.organizeImports を "explicit" に変えてみる(環境差の吸収)🧪[python] スコープで設定するのが安全です(他言語に影響しない)🛡️
この考え方はVSCodeのドキュメントでも例があります
VSCode+isortを入れると、保存するだけでimportが整って コードが読みやすく、差分も綺麗になります🧼
特にチーム開発や、将来の自分への引き継ぎで効いてきます💪
profile="black" で競合回避🤝A. 入れるだけでは動きません🙅♂️ VSCodeの settings.json で保存時に source.organizeImports を動かす設定が必要です⚙️
source.organizeImports は true と "explicit" どっち?🧩A. 環境によりますが、最近は "explicit" を推奨する情報が多いです✅(旧 true 相当の挙動として扱われるケース)
A. そのままだと衝突することがあります😇 isortに profile="black" を指定すると安定します🤝
A. PEP8(Python公式のスタイルガイド)に推奨順が載っています📚
A. むしろ途中導入が効きます✨ 以降の編集で差分が綺麗になり、レビューが楽になります👀💡
イラスト1枚から、テクスチャ付…