VSCodeでPythonのimport順を自動整理する方法(isort設定ガイド)🧹🐍

Pythonを書いていると、いつの間にか import がぐちゃぐちゃになって「読みにくい…」「差分が汚い…」となりがちです😵‍💫
でもVSCode+isortを入れておけば、保存するだけで PEP8に沿ったimport整理が自動で走るようになります✨

参考書籍

VSCodeでPythonコードのインポート順を自動整理:isortの設定ガイド

VSCodeでPythonコードのインポート順を自動整理:isortの設定ガイド

Python開発を行う際、コードの読みやすさとメンテナンス性を高めるために、インポートの順序が重要です。PEP8、Pythonのコーディング標準では、インポートは標準ライブラリ、サードパーティライブラリ、ローカルライブラリの順に分類し、各セクション間に空行を入れることを推奨しています。この手動での整理作業を自動化するツールが、静的解析ツールisortです。

VSCodeでisortを設定する手順

  1. isortインストール: コマンドプロンプトでpy -m pip install isortを実行し、isortをインストールします。
  2. VSCode拡張機能: VSCodeには拡張機能としてisortが用意されています。拡張機能タブからisortを検索し、設定画面を開きます。
  3. 拡張機能の設定: isortの拡張機能設定で、保存時にインポートを自動整理するオプションを有効にします。
  4. 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は次の順でグルーピングし、グループ間は空行で区切るのが推奨です👇

  1. 標準ライブラリ(例:os, sys
  2. サードパーティ(例:requests, numpy
  3. 自作/ローカル(例: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.organizeImportstrue/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. むしろ途中導入が効きます✨ 以降の編集で差分が綺麗になり、レビューが楽になります👀💡

あざらし

はじめまして、あざらしです。 フリーターからエンジニア会社へ就職し、 現在はフリーランスのシステムエンジニアとして働いています。 本業のエンジニア業のかたわら、 ✍️ ブログ運営 と「収入の柱を増やす挑戦」を少しずつ続けています。 フリーター時代から比べると、 段階的に収入が増えていくのを実感できるのが素直にうれしい今日この頃。 このブログでは、日々の気づき・体験談 IT・ガジェット・ゲーム系の話 「調べて分かったこと」を噛み砕いた解説 などを中心に、ジャンルに縛られない雑記ブログとして発信しています。 「自分と同じように悩んでいる人のヒントになればいいな」 そんな気持ちで更新中です。 👉 プロフィール詳細は、名前「あざらし」をクリックしてください