閉じる

VSCodeでPython開発を最適化するおすすめ拡張機能10選(2025年版)

VSCodeは軽快さと拡張性を両立したエディタで、Python開発でも強力な体験を提供します。

本記事では2025年版のおすすめ拡張機能10選を、初心者の方にも導入しやすい順序と実例つきで解説します。

フォーマッタやリンタの競合を避ける設定も丁寧に扱い、今日から迷いなく快適な開発環境を整えられるようにします。

初心者必須のおすすめVSCode拡張機能(2025年版)

Python(Microsoft)

できること

Microsoft公式のPython拡張機能です。VSCodeを用いたPythonプログラミングでは必須に近いレベルです。

インタプリタ選択、Lint/Formatの連携、テスト検出、デバッグ起動、Jupyterとの連携などPython開発の基盤になります。

ここから導入を始めるとつまずきにくいです。

インストールと有効化

VSCode左の拡張機能ビューでPythonと検索してインストールします。

CLIなら以下でも導入できます。

Shell
# VSCode拡張のインストール (CLI)
code --install-extension ms-python.python

初回は右下の通知やステータスバーからPython: Select Interpreterを実行し、使いたい仮想環境(venv)やシステムPythonを選択してください。

プロジェクトごとにインタプリタを選ぶとライブラリの取り違えを防げます。

おすすめ設定(settings.json)

VSCodeの設定(歯車) → 設定JSONを開くで、次を追加します。

JSONC
{
  // 端末を開くたびに選択中の仮想環境を自動アクティブ化
  "python.terminal.activateEnvironment": true,

  // 実行/デバッグ時に統合ターミナルを使う
  "python.experimental.debugging": true
}

使い方の例(実行とデバッグ)

次のサンプルを保存し、右上の再生ボタン(▶)で実行できます。

Python
# hello.py
# VSCodeのPython拡張で実行する最小例

def greet(name: str) -> str:
    return f"Hello, {name}!"

if __name__ == "__main__":
    print(greet("VSCode"))
実行結果
Hello, VSCode!

ブレークポイントを行番号左に置き、左サイドバーの実行とデバッグから開始すると停止と変数ウォッチができます。

ポイント

Python拡張はPylance(後述)と組み合わせる前提です。

併用して初めて補完や型チェックが最大限活きます。

Pylance

できること

PylanceはMicrosoftの高速言語サーバで、裏側ではPyrightによる型解析が動いています。

爆速補完と正確な型エラー検出で、間違いに早く気づけます。

おすすめ設定(型チェック強度)

初心者はbasicから始め、慣れたらstrictへ段階的に上げるのがおすすめです。

JSONC
{
  // 型チェックの厳しさ: off | basic | strict
  "python.analysis.typeCheckingMode": "basic",

  // 未使用変数の警告を早めに確認
  "python.analysis.diagnosticMode": "workspace"
}

型エラーを体験する小例

Pylanceが捉える典型的なエラー例です。

保存すると波線と診断が出ます。

Python
# pylance_example.py
# 型注釈と戻り値が食い違っている例

from typing import List

def head(items: List[int]) -> int:
    # 本来はintを返すべきだが、誤ってstrを返している
    return "not an int"  # Pylanceが型不一致を指摘します
ポイント

エディタ上で早期に気づけるため、実行前にバグの芽を摘めます。

Jupyter

できること

VSCode内でJupyter Notebook(.ipynb)を扱えます。

導入すると、新しいファイルの作成項目にJupyter Notebookが追加されます。

さらにPythonファイル内でも# %%セルを区切って対話実行ができます。

学習・検証コードの反復実行に最適です。

下準備

実行には対象環境にipykernelが必要です。

Shell
python -m pip install ipykernel

Pythonスクリプトをセル実行する例

エディタ上でセル左上の「実行」ボタンを押すと、そのセルだけを評価できます。

Python
# jupyter_cells.py
# %% でセルを分割し、Jupyter拡張で対話実行できる

# %% 1つ目のセル
x = 21 * 2
x

# %% 2つ目のセル
print(f"x = {x}")
実行結果
42
x = 42
ヒント

NotebookではShift+Enterでセル実行、Ctrl+Enter(macOSはCmd+Enter)でセルを実行して選択を維持できます。

コード品質を上げるPython拡張機能

Black Formatter

できること

事実上の標準フォーマッタです。

スタイルを厳格に統一し、コードレビューの指摘を減らします。

MicrosoftのBlack Formatter拡張を入れるとVSCodeからBlackが使えます。

インストール

拡張とPythonパッケージの両方が必要です。

Shell
code --install-extension ms-python.black-formatter
python -m pip install black

おすすめ設定(保存時フォーマット)

JSONC
{
  // PythonはBlackでフォーマット
  "[python]": {
    "editor.defaultFormatter": "ms-python.black-formatter",
    "editor.formatOnSave": true
  },
  // Blackの行幅(必要に応じて)
  "python.formatting.blackArgs": ["--line-length", "100"]
}
注意

同時に複数のフォーマッタを有効にしないでください。

Ruffやautopep8と併用すると競合します。

Before/Afterの例

整形前:

Python
# messy.py
def add(a:int,b:int)->int: return a+b
print( add( 1 ,2 ) )

Black整形後:

Python
def add(a: int, b: int) -> int:
    return a + b


print(add(1, 2))

isort

できること

import文をアルファベット順に整理し、グループ化や未使用の自動除去(設定により)を行います。

Ruffにも同等機能があり、どちらか片方に寄せるのが安全です。

インストール

Shell
code --install-extension ms-python.isort
python -m pip install isort

おすすめ設定

JSONC
{
  // 保存時にimportを整理
  "python.sortImports.args": ["--profile", "black"],
  "editor.codeActionsOnSave": {
    "source.organizeImports": "explicit"
  }
}

Before/Afterの例

整理前:

Python
# imports_before.py
import sys, os
import numpy as np
from datetime import datetime
import requests

isort後:

Python
import os
import sys
from datetime import datetime

import numpy as np
import requests
ヒント

Blackとisortは--profile blackで衝突を避けられます。

Ruff

できること

Ruffは超高速リンタ兼フォーマッタで、Flake8/pycodestyle/pydocstyle/isortの多くを代替します。

注意点

代替する都合上、関連するフォーマッタと競合しがちです。他のフォーマッタは無効化、または、isortの--profile blackオプションのようなもので対応したうえで使用しましょう

2025年時点では「Ruffでlint+import整列、Blackで整形」または「すべてRuffに寄せる」の2択が主流です。

インストール

Shell
code --install-extension charliermarsh.ruff
python -m pip install ruff

おすすめ設定(Blackと併用する場合)

JSONC
{
  // Ruffでlint, import整列。整形はBlackに任せる
  "ruff.lint.enable": true,
  "ruff.format.enable": false, // ← Blackを使うため無効
  "ruff.lint.select": ["E", "F", "I", "W"], // 代表的な規則セット
  "editor.codeActionsOnSave": {
    "source.fixAll.ruff": "explicit", // ルールに基づく自動修正
    "source.organizeImports.ruff": "explicit"
  }
}

代わりにRuffで整形まで行う場合は以下です。

Blackと同時には使わないでください。

JSONC
{
  // Ruffをデフォルトフォーマッタに
  "[python]": {
    "editor.defaultFormatter": "charliermarsh.ruff",
    "editor.formatOnSave": true
  },
  "ruff.format.enable": true
}

Lintの例と修正提案

次は未使用importと可読性の低い比較を含むコードです。

Python
# ruff_example.py
import os  # 未使用
x = 0

if x == 0:  # "== 0" より "not x" の方が読みやすい場面も
    print("zero")

RuffのCLI出力例:

実行結果
ruff check ruff_example.py
ruff_example.py:2:1: F401 `os` imported but unused
ruff_example.py:5:4: PLR1714 consider simplifying comparison to `not x`

VSCode拡張ではProblemsタブとインラインで同様の指摘が表示されます。

実行・デバッグを快適にするVSCode拡張機能

Code Runner

できること

軽量に現在編集中のファイルを即実行します。

導入することで、Ctrl+Enterキーでプログラムを実行することが出来ます。

複雑なデバッグ構成を作る前の素早い試行に便利です。

標準の「Run Python File」との違いは、複数言語にまたがってワンボタンで走らせられる点です。

実際にはファイルの拡張子ごとに区別して設定できるコマンドを実行するだけであるため、Pythonに限らず、あらゆる言語に対応できます。

設定

設定を開く方法はいくつかありますが、Code Runnerの設定を開き、少し下にスクロールしたら見えるsetting.jsonで編集から開くのがシンプルです。

対話入力を使うならターミナルで実行する設定を推奨します。

JSONC
{
  "code-runner.runInTerminal": true,
  "code-runner.executorMap": {
    // Pythonの実行コマンドを明示(必要に応じて)
    "python": "python -u $fullFileName"
  }
}

ファイル名など使用できる変数がいくつか用意されています。

変数名内容(日本語)
$workspaceRootVSCode で開いているワークスペース(フォルダー)のパス
$dir実行対象のコードファイルがあるディレクトリのパス
$dirWithoutTrailingSlashディレクトリの末尾にスラッシュがない形式のディレクトリパス
$fullFileName実行対象のコードファイルの完全なパス(ディレクトリ付き)
$fileNameコードファイルのベース名(ディレクトリを除いたファイル名)
$fileNameWithoutExt拡張子を除いたファイル名のみ
$driveLetter実行対象ファイルのドライブレター(Windows のみ)
$pythonPathPython インタプリタのパス(“Python: Select Interpreter” で選んだもの)

例えば、python -u $fullFileNameに設定して、sample.pyを開いてる状態でCtrl+Enterキーを押すと、python -u C:\...\sample.py(絶対パス)が実行されます。

入力を伴う小例

Python
# code_runner_io.py
# 入力を必要とするサンプル。runInTerminalがtrueなら動作しやすい

name = input("Your name? ")
print(f"Hi, {name}!")
実行結果
Your name? Alice
Hi, Alice!

あくまでコマンドを実行しているだけであるほか、連続したコマンドを実行できるため、実行にコンパイルが必要なC言語などでも、Ctrl+Enterで即時実行できるようになります。

cd $dir && gcc $fileName -o $fileNameWithoutExt && $fileNameWithoutExt && del $dir$fileNameWithoutExt.exe

こちらは、対象のCファイルのカレントディレクトリに移動してコンパイル、成功した場合は即時実行し、実行完了後に該当ファイルを削除しています。

注意

本格的なデバッグ(ブレークポイント、ステップ実行)はVSCode標準の実行とデバッグ機能の方が適しています。

Error Lens

できること

VSCodeのエラーや警告をその行の末尾にインライン表示し、問題点を見逃しにくくします。

PylanceやRuffの診断と相性が良いです。

インストールとおすすめ設定

Shell
code --install-extension usernamehw.errorlens
JSONC
{
  // 表示レベルや見た目を調整
  "errorLens.enabledDiagnosticLevels": ["error", "warning"],
  "errorLens.messageBackgroundMode": "line",
  "errorLens.fontStyleItalic": true
}

体験のコツ

短いファイルでは快適ですが、長い行が多い場合はmessageBackgroundModehoverに切り替えると視認性が上がります。

ドキュメントとチーム開発に役立つ拡張機能

autoDocstring(Python Docstring)

できること

関数のシグネチャからDocstringを自動生成します。

Google/Numpy/Sphinxスタイルを選べるため、チームの規約に合わせやすいです。

インストールと初期設定

Shell
code --install-extension njpwerner.autodocstring
JSONC
{
  "autoDocstring.docstringFormat": "google", // "numpy" も人気
  "autoDocstring.includeType": true,
  "autoDocstring.guessTypes": true
}

生成例

関数定義直下で"""を入力しTab、またはコマンドパレットからGenerate Docstringを実行します。

Python
# autodocstring_example.py
def add(a: int, b: int) -> int:
    """Summary line.

    Args:
        a (int): Description of a.
        b (int): Description of b.

    Returns:
        int: Description of return value.
    """
    return a + b
ポイント

まずは自動生成してから、説明を肉付けすると効率的です。

GitLens

できること

行単位のBlame(誰がいつ書いたか)、コミット履歴、差分ナビ、リポジトリの洞察など、Gitの把握を強力に支援します。

レビュー時に「なぜこのコードがこうなったか」を素早く辿れます。

インストール

Shell
code --install-extension eamodio.gitlens

便利な使い方

  • エディタ右上のGitLensボタンでToggle Line Blameを有効化すると、各行のコミット情報が表示されます。
  • コード選択範囲の右クリックからGitLens: Open Line Historyで、その行の変遷を時系列に確認できます。
  • サイドバーのCommitsRepositoriesビューで、PRやタグに素早くアクセスできます。

チーム開発のコツ: 小さく頻繁なコミットにするとGitLensの履歴が価値あるドキュメントになります。

まとめ

本記事では2025年にPython初心者がまず導入すべきVSCode拡張機能10選を、役割別に解説しました。

土台となるPythonPylance、対話実行のJupyterを起点に、品質向上のBlack/isort/Ruff、実行補助のCode Runner/Error Lens、チーム作業を支えるautoDocstring/GitLensを組み合わせるのが最短ルートです。

特にフォーマッタは1つに統一し、RuffとBlackをどう使い分けるかを決めてからsettings.jsonを整えると、競合によるストレスを避けられます。

導入後の次の一歩としては、プロジェクトごとに仮想環境を切り替えて拡張を活用し、保存時フォーマットとインライン診断(Error Lens)で「書いた瞬間に整う」状態を作るのがおすすめです。

最後に、参考として10拡張の早見表を掲載します。

必要に応じて自分の運用に合わせて設定を微調整してください。

拡張機能早見表(役割と補足)

拡張名主な役割推奨設定の要点競合/補足
Python(Microsoft)実行/デバッグ、環境選択python.terminal.activateEnvironmentPylanceと併用前提
Pylance補完・型解析typeCheckingMode: basicから開始strictは慣れてから
Jupyter対話実行/Notebookipykernel導入# %%セルが便利
Black Formatterコード整形保存時整形、行幅Ruff整形と二者択一
isortimport整列--profile blackRuffのimportsと二者択一
RuffLint(+整形)fixAllorganizeImportsBlackとどちらかを選ぶ
Code Runner迅速実行runInTerminal: true入力を伴う実行に有効
Error Lens診断の可視化レベルと外観調整長い行ではhover表示も
autoDocstringDocstring自動生成スタイル選択まず生成→肉付け
GitLens履歴/Blame可視化Line Blame/History活用小さな頻繁コミットが吉

開発環境は一度整えると長く効きます

本記事の設定をたたき台に、あなたのプロジェクトに最適な形へ洗練していってください。

この記事を書いた人
エーテリア編集部
エーテリア編集部

人気のPythonを初めて学ぶ方向けに、文法の基本から小さな自動化まで、実際に手を動かして理解できる記事を書いています。

クラウドSSLサイトシールは安心の証です。

URLをコピーしました!