Pythonを書いていると、いつの間にか import がぐちゃぐちゃになって「読みにくい…」「差分が汚い…」となりがちです😵💫
でもVSCode+isortを入れておけば、保存するだけで PEP8に沿ったimport整理が自動で走るようになります✨
参考書籍
VSCodeでPythonコードのインポート順を自動整理:isortの設定ガイド
Python開発を行う際、コードの読みやすさとメンテナンス性を高めるために、インポートの順序が重要です。PEP8、Pythonのコーディング標準では、インポートは標準ライブラリ、サードパーティライブラリ、ローカルライブラリの順に分類し、各セクション間に空行を入れることを推奨しています。この手動での整理作業を自動化するツールが、静的解析ツールisortです。
VSCodeでisortを設定する手順
- isortインストール: コマンドプロンプトで
py -m pip install isortを実行し、isortをインストールします。 - VSCode拡張機能: VSCodeには拡張機能としてisortが用意されています。拡張機能タブからisortを検索し、設定画面を開きます。
- 拡張機能の設定: isortの拡張機能設定で、保存時にインポートを自動整理するオプションを有効にします。
- VSCodeの設定用コードの追加: isort拡張機能画面に示された設定コードを、VSCodeの
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の拡張機能を活用することで、面倒なインポート整理の作業から解放されます。
import順が整うと何が嬉しい?📚✨
PEP8では、importは次の順でグルーピングし、グループ間は空行で区切るのが推奨です👇
- 標準ライブラリ(例:
os,sys) - サードパーティ(例:
requests,numpy) - 自作/ローカル(例:
from . import xxx)
このルールを守ると…🎉
- 依存関係が一目で分かる👀
- PR差分がスッキリする🧼
- チーム開発で揉めにくい🤝
そこで活躍するのが isort です🛠️
isortって何?🤖🧩
isortは、Pythonのimportをルールに沿って 並べ替え&整形してくれるツールです✨
手作業で直す時間がゼロに近づきます⌛➡️0へ
VSCodeでisortを設定する手順(最短ルート)🚀
以下は、参考記事にある流れをベースに、実務でハマりにくい形に整理した手順です✅
1) isortをインストールする(pip)📦
ターミナルで実行👇
py -m pip install isort
※ 参考記事でも py -m pip install isort の形で紹介されています
2) VSCode拡張「isort」を入れる🧩
VSCodeの拡張機能で “isort” を検索してインストールします。
(拡張は ms-python.isort として提供され、isortを使ったimport整形を行います)
3) settings.jsonに「保存時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も使ってる人は「競合対策」を必ずやろう⚔️➡️🤝
Blackとisortは、デフォルト設定のままだと import整形が衝突して差分が行ったり来たりすることがあります😇
Black公式も「isortと競合する」点に触れています
対策は簡単で、isort側を Black互換プロファイルに寄せます✅
pyproject.tomlにこれを追加(おすすめ)🧾✨
[tool.isort]
profile = "black"
これで、CLI・pre-commit・VSCodeなど呼び出し元が何でも「Black互換」で揃いやすくなります
よくあるハマりどころ&チェックポイント🔍🧯
保存しても動かない😭
- VSCode拡張「isort」が入ってるか確認🧩
settings.jsonが ユーザー設定ではなく、必要なら ワークスペース設定にも入っているか確認📁source.organizeImportsを"explicit"に変えてみる(環境差の吸収)🧪
「Python全体」じゃなくプロジェクトだけに効かせたい📌
[python] スコープで設定するのが安全です(他言語に影響しない)🛡️
この考え方はVSCodeのドキュメントでも例があります
まとめ📝✨
VSCode+isortを入れると、保存するだけでimportが整って コードが読みやすく、差分も綺麗になります🧼
特にチーム開発や、将来の自分への引き継ぎで効いてきます💪
- PEP8推奨の順序でimportを自動整列📚
- VSCode拡張で手軽に導入🧩
- Black併用なら
profile="black"で競合回避🤝
FAQ(よくある質問)❓💡
Q1. isortって入れるだけで勝手に動く?🤔
A. 入れるだけでは動きません🙅♂️ VSCodeの settings.json で保存時に source.organizeImports を動かす設定が必要です⚙️
Q2. source.organizeImports は true と "explicit" どっち?🧩
A. 環境によりますが、最近は "explicit" を推奨する情報が多いです✅(旧 true 相当の挙動として扱われるケース)
Q3. Blackも使ってるけど大丈夫?⚫🆚🧹
A. そのままだと衝突することがあります😇 isortに profile="black" を指定すると安定します🤝
Q4. importの正しい並び順ってどこで決まってるの?📏
A. PEP8(Python公式のスタイルガイド)に推奨順が載っています📚
Q5. 既存プロジェクトにも途中から導入していい?🚀
A. むしろ途中導入が効きます✨ 以降の編集で差分が綺麗になり、レビューが楽になります👀💡


コメント