VSCode Python 開発環境セットアップ
Visual Studio Code を使った快適なPython開発環境の構築方法を完全解説。必須拡張機能、デバッガー設定、コードフォーマッターまですべて網羅します。
- 1. VSCode のインストール
- 2. Python 必須拡張機能
- 3. Python インタープリターの設定
- 4. 仮想環境(venv)と VSCode の連携
- 5. コードの実行方法
- 6. デバッグの使い方
- 7. launch.json はどこにある? 作り方と設定例
- 7.4 環境変数を渡す(env / envFile)
- 8. コードフォーマッターの設定(Black・Ruff)
- 8.2 保存時に自動整形させる設定
- 8.5 Black と Ruff の使い分け
- 8.7 フォーマッターが効かないときの確認順
- 9. おすすめ settings.json 設定
- 10. 覚えておきたいショートカット
- 11. 効率的な開発ワークフロー
- 12. よくあるトラブルと対処(症状別の逆引き)
- 13. よくある質問
1. VSCode のインストール
VSCode(Visual Studio Code)はMicrosoftが開発した無料のコードエディターです。軽量で高機能、豊富な拡張機能により世界中の開発者に愛用されています。
まだPython本体を入れていない場合は、先にPythonのインストール手順を済ませてから本ページに戻ってください。
-
1公式サイトからダウンロード
https://code.visualstudio.com/にアクセスし、お使いのOSに合ったインストーラーをダウンロードします。 -
2インストールオプション(Windows)
Windowsの場合、インストール時に以下のオプションにチェックを入れると便利です:
- 「エクスプローラーのファイルコンテキストメニューに[Codeで開く]アクションを追加する」
- 「エクスプローラーのディレクトリコンテキストメニューに[Codeで開く]アクションを追加する」
- 「PATHへの追加」
-
3起動確認
インストール完了後、VSCodeを起動します。日本語UIにするには次のセクションの拡張機能をインストールします。
macOS は配布されたアプリケーションをアプリケーションフォルダーへドラッグするだけ、Linux は各ディストリビューション向けのパッケージが用意されています。どのOSでも、フォルダーを開いた状態で作業するのが基本です。1つのファイルではなく「プロジェクトのフォルダー」を開くと、この記事で扱う設定ファイル(.vscode/settings.json・.vscode/launch.json)がそのフォルダーの中に作られ、プロジェクトごとに設定を持てるようになります。
code . が使えるインストール時に「PATHへの追加」を選んでおくと、ターミナルで cd したフォルダーに対して code . と打つだけでVSCodeが開きます。フォルダーを開き直す操作がなくなるので、プロジェクトを行き来する頻度が上がるほど効いてきます。
2. Python 必須拡張機能
VSCodeの左側の拡張機能アイコン(四角が4つのアイコン)をクリックし、検索ボックスに名前を入力してインストールします。同じ名前の拡張が複数並ぶことがあるので、検索ボックスに拡張機能ID(例: ms-python.python)をそのまま貼り付けて選ぶと、publisher を間違えずに済みます。
最初に入れるのは Microsoft 公式の Python 拡張ひとつだけで構いません。この拡張は Pylance(補完・型チェック)、Python Debugger(デバッグ)、Python Environments(環境の管理)を付随的に一緒にインストールする作りになっているため、1つ入れるだけで補完とデバッグが同時に立ち上がります。整形(フォーマッター)とリンターは Python 拡張に含まれておらず、後述するとおり別の拡張として選んで入れます。
必須拡張機能
🐍 Python(Microsoft)
Python開発の基本拡張機能。インタープリター選択、実行、テスト実行などの中核機能を提供します。
ms-python.python
🔍 Pylance(Microsoft)
高性能な言語サーバー。コード補完、型チェック、定義へのジャンプなどが劇的に向上します。Python拡張機能と一緒に自動インストールされます。
ms-python.vscode-pylance
🐛 Python Debugger
ブレークポイントを使ったデバッグ機能。変数の値確認やステップ実行ができます。launch.json に書く "type" の値 debugpy はこの拡張が提供しています。
ms-python.debugpy
🇯🇵 Japanese Language Pack
VSCodeを日本語UIにするための言語パック。メニューやメッセージが日本語になります。
MS-CEINTL.vscode-language-pack-ja
推奨拡張機能
✨ Black Formatter
Pythonコードを自動整形するフォーマッター。Microsoft公式の拡張で、Black本体を同梱しているため pip install なしでも保存時整形が動きます(§8で設定)。
ms-python.black-formatter
⚡ Ruff
Rust製の高速なリンター兼フォーマッター。Black互換の整形とimport並べ替え、コードの問題指摘を1つでまかなえます。開発元 Astral の公式拡張です。
charliermarsh.ruff
🔎 Flake8
Pythonのコードスタイルチェッカー。バグになりそうな箇所や書き方の問題を指摘します。Ruff を入れる場合は役割が重なるので、どちらか一方で十分です。
ms-python.flake8
📁 indent-rainbow
インデントをカラフルに色付けします。Pythonはインデントが重要なので、視覚的に確認できて便利。
oderwat.indent-rainbow
🖼️ Material Icon Theme
ファイルアイコンをわかりやすいアイコンに変更します。.pyファイルにPythonのアイコンが表示されます。
PKief.material-icon-theme
🤖 GitHub Copilot
AIによるコード補完。コメントを書くとコードを自動生成してくれます(有料プランあり)。
GitHub.copilot
🔗 GitLens
Gitの履歴や変更者をコード上に表示します。無料の Community でもブレーム表示・ホバー・履歴のたどり直しは使えます(有料の範囲はFAQで整理)。
eamodio.gitlens
拡張機能を入れる順番と役割の早見表
初回は上から順に入れ、下の3つは必要になってから足すのがおすすめです。無料で完結する構成なので、この記事の手順に課金は発生しません。
| 順 | 拡張機能(ID) | 役割 | 費用 |
|---|---|---|---|
| 1 | Python ms-python.python | 実行・環境選択の土台。Pylance と Python Debugger も一緒に入る | 無料 |
| 2 | Japanese Language Pack MS-CEINTL.vscode-language-pack-ja | メニューとメッセージの日本語化 | 無料 |
| 3 | Black Formatter ms-python.black-formatterまたは Ruff charliermarsh.ruff | 保存時の自動整形。どちらか一方を選ぶ | 無料 |
| 4 | indent-rainbow oderwat.indent-rainbow | インデントの深さを色で可視化 | 無料 |
| 5 | Material Icon Theme PKief.material-icon-theme | ファイル種別をアイコンで判別 | 無料 |
| 6 | GitLens eamodio.gitlens | 変更履歴の可視化(無料の範囲あり・一部機能は有料) | 一部有料 |
| 7 | GitHub Copilot GitHub.copilot | AIによるコード補完(利用条件は提供元の案内による) | 一部有料 |
拡張機能は1つずつ VSCode の起動時間とメモリを消費します。動作が重いと感じたら、まず使っていない拡張を無効化してください。拡張の一覧から「無効にする」を選べば削除せずに止められ、「ワークスペースで無効にする」ならそのプロジェクトだけ切れます。どの拡張が動いているかはコマンドパレットの「開発者: 実行中の拡張機能を表示」(Developer: Show Running Extensions)で確認できます。
3. Python インタープリターの設定
VSCodeに使用するPythonのバージョンを教える設定です。仮想環境を使っている場合は仮想環境のインタープリターを選択します。
-
1コマンドパレットを開く
Ctrl+Shift+P(Mac: Cmd+Shift+P)でコマンドパレットを開きます。
-
2「Python: インタープリターを選択」を実行
コマンドパレットに「Python: Select Interpreter」または「Python: インタープリターを選択」と入力して選択します。
-
3使用するPythonを選択
表示されるリストから使用したいPythonを選択します。仮想環境を使っている場合は
.venv\Scripts\python.exe(Windows)または.venv/bin/python(macOS / Linux)を選択してください。作り方とVSCodeとの連携は§4で詳しく扱います。
現在選択されているインタープリターはVSCodeの右下(バージョンによっては左下)のステータスバーに表示されます。クリックすることでいつでも変更できます。
ここで選んだインタープリターはそのフォルダー(ワークスペース)単位で記憶されます。つまりプロジェクトごとに別のPythonを割り当てられるということで、次に同じフォルダーを開いたときは選び直す必要はありません。記憶される場所はVSCodeや拡張機能のバージョンによって異なり、.vscode/settings.json に書き出される場合もあれば、VSCode内部にだけ保存されて設定ファイルが作られない場合もあります。
選択がなぜ重要かというと、VSCodeはこの1つの設定を 補完(Pylance)・デバッグ実行・統合ターミナルの3か所すべての土台にしているからです。ここがずれていると「実行はできるのに補完が効かない」「pip install したのに import できない」といった、原因が見えにくい不具合がまとめて発生します。次の章で、その土台をプロジェクト単位に切り分ける仮想環境(venv)との連携を扱います。
4. 仮想環境(venv)と VSCode の連携
仮想環境(venv)は、プロジェクトごとにライブラリの置き場所を分ける仕組みです。分けておくと、あるプロジェクトのために入れたライブラリが別のプロジェクトを壊すことがなくなります。Python本体側の作り方はPythonのインストール手順の仮想環境(venv)の章で解説しているので、ここではVSCodeとつなぐところだけを扱います。
ここを飛ばすと、初心者がいちばん時間を溶かす「pip install したはずなのに ModuleNotFoundError」に必ず出会います。逆に、この章の3ステップを最初に済ませておけば、そのエラーの大半は起きません。
4.1 プロジェクト直下に .venv を作る
プロジェクトのフォルダーをVSCodeで開き、Ctrl+` でターミナルを出して次を実行します。フォルダー名は .venv にしておくのが実用的です。VSCodeはワークスペース内の .venv を自動的に探しに行くため、名前を合わせるだけで検出されやすくなります。
# Windows(PowerShell)
python -m venv .venv
# macOS / Linux
python3 -m venv .venv
実行するとフォルダー内に .venv ができます。中身は Windows なら .venv\Scripts\python.exe、macOS / Linux なら .venv/bin/python というそのプロジェクト専用のPythonです。
4.2 VSCode に .venv を認識させる
Ctrl+Shift+P →「Python: Select Interpreter(インタープリターを選択)」で、一覧から .venv が付いたものを選びます。('.venv': venv) のような表示が目印です。一覧に出てこない場合は「インタープリターパスを入力」から .venv\Scripts\python.exe を直接指定できます。
選択後、ステータスバーの表示が .venv に変われば連携完了です。この時点で、補完・デバッグ・ターミナルの3つが同じPythonを向きます。
4.3 統合ターミナルは自動でアクティベートされる
VSCodeの統合ターミナルは、選択中の環境を自動でアクティベートしてから開きます。プロンプトの先頭に (.venv) と出ていればアクティベート済みで、その状態の pip install はプロジェクト内だけに入ります。
すでに開いているターミナルには反映されないので、インタープリターを切り替えたらターミナルを一度閉じて開き直すのが確実です(ターミナルパネルのゴミ箱アイコンで破棄 → Ctrl+` で新規)。
PowerShell で .venv\Scripts\Activate.ps1 を手動実行すると、実行ポリシーの制限で拒否されることがあります。Python公式ドキュメント(venv)は、この場合に Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser を実行して有効化する方法を案内しています。会社から支給されたPCでは組織のポリシーが優先されることがあるため、変更前に管理者の方針を確認してください。設定変更を避けたいときは、コマンドプロンプト用の .venv\Scripts\activate.bat を使うか、そもそもアクティベートせずに .venv\Scripts\python.exe -m pip install requests のようにフルパスでvenv内のPythonを直接呼ぶ方法でも同じ結果になります。
4.4 「VSCodeでだけ ModuleNotFoundError」が出るときの切り分け
コマンドプロンプトでは動くのにVSCodeでだけ落ちる、あるいはその逆。原因は、筆者が見てきた範囲ではほぼ例外なく「入れたPythonと実行しているPythonが違う」ことです。犯人探しは、両方で次の1行を実行してパスが一致するかを見るのが最短です。
python -c "import sys; print(sys.executable)"
ターミナルで表示されたパスと、ステータスバーに出ているインタープリターが同じなら環境は揃っています。違っていたら次の表で自分の状況を確認してください。
| 入れた場所 | 実行している場所 | 結果 | 直し方 |
|---|---|---|---|
| OSのコマンドプロンプト(システムPython) | VSCode(.venv 選択中) | VSCodeだけ import 失敗 | VSCodeのターミナルで入れ直す |
| VSCodeのターミナル(.venv) | OSのコマンドプロンプト | ターミナルだけ import 失敗 | 先に .venv をアクティベートする |
| VSCodeのターミナル(.venv) | VSCode(別の環境を選択中) | 実行時のみ失敗・Pylanceは赤波線 | Select Interpreter で .venv を選び直す |
| どこか不明 | — | 切り分け不能 | python -m pip list を両方で比較する |
迷ったときの原則はひとつ、pip ではなく python -m pip で入れることです。この書き方なら「いま選ばれているPython」に確実に入るため、取り違えが構造的に起きません。エラーメッセージ側から原因をたどりたい場合はModuleNotFoundErrorの解説もあわせて確認してください。
5. コードの実行方法
方法1: 再生ボタンで実行
右上の ▶ ボタン(実行ボタン)は「デバッグなしで実行」に相当します。クリックするか Ctrl+F5 でファイルを実行します。ブレークポイントを使ってデバッグ付きで実行したいときは F5 です。
方法2: ターミナルで実行
Ctrl+`(バッククォート)でターミナルを開き、python ファイル名.py を実行します。
python hello.py
方法3: インタラクティブウィンドウ
コードを選択して右クリック → 「選択範囲をPython インタラクティブで実行」を選ぶと、Jupyterのようなインタラクティブウィンドウで実行できます。このメニューは Jupyter 拡張機能(ms-toolsai.jupyter)が入っている場合に使えます。pandas の結果を少しずつ確かめたいときなど、ファイル全体を毎回動かしたくない場面で便利です。
3つの実行方法の使い分け
| 方法 | 向いている場面 | 入力を受け取れるか |
|---|---|---|
| ▶ ボタン / Ctrl+F5 | とりあえず動かして結果を見る | 可(統合ターミナルで実行される) |
ターミナルで python file.py | 引数を変えながら何度も試す | 可 |
| インタラクティブウィンドウ | データを触りながら少しずつ書く | input() は不向き |
メニューの「ターミナル」→「新しいターミナル」でターミナルパネルを開いておくと作業しやすいです。input() を使うプログラムは、このターミナル上で実行されていないと入力を受け付けられません。パネルが「デバッグコンソール」や「出力」に切り替わっているときは、タブを「ターミナル」に戻してください。
6. デバッグの使い方
デバッグを使うとプログラムを途中で止めて変数の値を確認できます。バグ修正に非常に役立ちます。print() を挿しては消す作業を繰り返している人ほど、ここで時間が返ってきます。変数の中身を1行ずつ目で追えるようになるので、「なぜかループが1回多い」「なぜか空のリストが返る」といった原因が、推測ではなく観察で分かります。
ブレークポイントの設定
-
1ブレークポイントを設定
止めたい行番号の左側をクリックすると赤い丸●が表示されます(ブレークポイント)。
-
2デバッグモードで実行
F5 を押すか「実行とデバッグ」パネルから「Python ファイル」を選んで実行します。
-
3変数を確認
ブレークポイントで停止したら、左のパネルで変数の値を確認できます。F10(次の行へ)、F11(関数の中に入る)で一行ずつ実行できます。
デバッグのショートカット
| ショートカット | 動作 |
|---|---|
| F5 | デバッグ開始 / 続行 |
| Shift+F5 | デバッグ停止 |
| F10 | ステップオーバー(次の行へ) |
| F11 | ステップイン(関数の中に入る) |
| Shift+F11 | ステップアウト(関数から出る) |
| Ctrl+Shift+F5 | デバッグの再起動 |
| Ctrl+Shift+D | 「実行とデバッグ」パネルを開く |
止まったあとに見る4つのパネル
ブレークポイントで停止すると、左側に4つの領域が並びます。役割を知っておくと、止めたあとに何を見ればいいか迷いません。
| パネル | 見えるもの | 使いどころ |
|---|---|---|
| 変数 | いまのスコープの変数と値 | 期待した値が入っているかの確認 |
| ウォッチ式 | 自分で登録した式の評価結果 | len(items) など、変数そのものではない値を見張る |
| コールスタック | どの関数から呼ばれてここに来たか | 再帰や深い呼び出しで迷子になったとき |
| ブレークポイント | 設定済みの停止位置の一覧 | 一時的な全解除・付け直し |
停止中は下部のデバッグコンソールでその場の変数を使った式を評価できます。data[3]["price"] のように打てば結果がすぐ返るので、条件式が思ったとおりか、その場で試せます。
条件付きブレークポイントとログポイント
1万件のループの中で「i が 500 のときだけ」止めたい、という場面があります。行番号の左を右クリックして「条件付きブレークポイントの追加」を選び、i == 500 のような式を入れると、その条件が真のときだけ停止します。
同じメニューにあるログポイントは、止めずにメッセージだけ出す仕組みです。メッセージ欄に 現在の値: {price} のように書くと、波括弧の中が実際の値に置き換わってデバッグコンソールに出ます。print() を書き足してあとで消す作業が丸ごと不要になり、消し忘れがコードに残る事故も防げます。
「引数をつけて起動したい」「作業フォルダーを固定したい」「APIキーを環境変数で渡したい」となったら、実行の設定をファイルに保存する段階です。それが次章の launch.json です。
7. launch.json はどこにある? 作り方と設定例
launch.json は「どのファイルを、どんな引数と環境変数で、どう起動してデバッグするか」を保存しておくファイルです。F5 のたびに選択肢を選び直している人は、これを作ればワンクリックで同じ実行を再現できます。
7.1 場所はプロジェクト直下の .vscode フォルダー
結論から言うと、launch.json の置き場所はVSCodeで開いているフォルダーの直下にある .vscode フォルダーの中です。パスで書くと プロジェクト/.vscode/launch.json になります。ユーザー設定のようにOSのどこか深い場所にあるのではなく、プロジェクトごとに1つという点がポイントです。
.vscode はドットで始まるため、OSのファイル一覧では隠しフォルダー扱いになることがあります。VSCodeのエクスプローラー(左側のファイル一覧)ではそのまま表示されるので、見つからないときはVSCode側で探すのが早いです。表示されていない場合は、単にまだ作られていないだけです。
7.2 作り方は「実行とデバッグ」から2クリック
-
1「実行とデバッグ」パネルを開く
左のアクティビティバーで再生ボタンに虫が付いたアイコン、または Ctrl+Shift+D(Mac: Cmd+Shift+D)。
-
2「launch.json ファイルを作成します」をクリック
デバッガーの選択肢が出るので Python Debugger →「Python ファイル」を選びます。これで
.vscode/launch.jsonが自動生成されます。 -
3あとから開くとき
エクスプローラーから直接開くか、コマンドパレット(Ctrl+Shift+P)で「デバッグ: launch.json を開く」を実行します。手で
.vscodeフォルダーを作り、その中にlaunch.jsonを置いても同じです。
単体のファイルだけを開いた状態(フォルダー未オープン)では、保存先になるワークスペースが無いため launch.json を作成できません。「ファイル」→「フォルダーを開く」でプロジェクトのフォルダーを開いてから操作してください。
7.3 Python向けの設定例(引数・作業フォルダー付き)
自動生成された直後は「現在のファイルを実行」だけのシンプルな内容です。configurations の配列に要素を足すと、実行とデバッグパネルのドロップダウンに構成が並び、選んで F5 で切り替えられます。
{
"version": "0.2.0",
"configurations": [
{
"name": "現在のファイルを実行",
"type": "debugpy",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal",
"justMyCode": true
},
{
"name": "main.py を引数つきで実行",
"type": "debugpy",
"request": "launch",
"program": "${workspaceFolder}/main.py",
"args": ["--input", "data.csv", "--verbose"],
"cwd": "${workspaceFolder}",
"console": "integratedTerminal"
},
{
"name": "ライブラリの中まで追いかける",
"type": "debugpy",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal",
"justMyCode": false
}
]
}
| 項目 | 意味 | 覚えておくこと |
|---|---|---|
type | 使うデバッガー | 現在は debugpy。古い記事にある "python" は旧式の値 |
program | 起動するファイル | ${file}=開いているファイル、${workspaceFolder}=プロジェクト直下 |
args | コマンドライン引数 | スペース区切りの1語ごとに要素を分けて書く |
cwd | 実行時の作業フォルダー | 省略時はワークスペースのフォルダー。相対パスでのファイル読み込みがずれるときはここ |
console | 出力先 | 既定は integratedTerminal。input() を使うならこのまま |
justMyCode | 自分のコードだけを対象にするか | 省略時・true は自作コードのみ停止。false でライブラリ内部にも入れる |
launch.json はコメント(//)を書ける形式ですが、末尾のカンマは書けません。構成を1つ消したときにカンマが余って赤波線が出るのは、ほぼこれが原因です。
7.4 環境変数を渡す(env / envFile)
APIキーやデータベースの接続先など、コードに直接書きたくない値は環境変数で渡します。VSCodeのデバッグ実行では方法が2つあります。
1つ目は env に直接書く方法です。切り替えの少ない値や、秘密ではない設定に向いています。
{
"name": "開発モードで実行",
"type": "debugpy",
"request": "launch",
"program": "${workspaceFolder}/main.py",
"console": "integratedTerminal",
"env": {
"APP_ENV": "development",
"LOG_LEVEL": "DEBUG"
}
}
2つ目は envFile でファイルから読み込む方法です。APIキーのような秘密の値はこちらを使ってください。ファイルを .gitignore に入れておけば、うっかりGitHubへ公開する事故を防げます。
API_KEY=xxxxxxxxxxxxxxxx
DB_URL=postgresql://localhost:5432/sample
{
"name": ".env を読み込んで実行",
"type": "debugpy",
"request": "launch",
"program": "${workspaceFolder}/main.py",
"console": "integratedTerminal",
"envFile": "${workspaceFolder}/.env"
}
Python側は os.environ で受け取ります。値が無いときに落とさず既定値を使いたい場合は os.environ.get() が便利です。
import os
api_key = os.environ.get("API_KEY", "")
app_env = os.environ.get("APP_ENV", "production")
if not api_key:
raise SystemExit("API_KEY が設定されていません。.env を確認してください")
print(f"{app_env} モードで起動します")
なお、環境変数定義ファイルの既定値はVSCodeの設定 python.envFile にあり、VS Code公式ドキュメント(Python environments)では "${workspaceFolder}/.env" とされています。プロジェクト直下に .env を置いておけば、launch.json に書かなくても読まれるのが基本の挙動です。統合ターミナルにも同じ変数を流したい場合は、別の設定が必要になることがあるため、ターミナルから python main.py したときに値が空なら、まずデバッグ実行(F5)で確かめてください。
.env は絶対にGitへコミットしないでください(§11の .gitignore に記載例があります)。逆に launch.json はチームで共有する価値があるファイルです。秘密の値を env に直書きせず envFile に逃がしておけば、launch.json ごと安全に共有できます。
8. コードフォーマッターの設定(Black・Ruff)
コードフォーマッターは、インデントの深さ・カンマの後ろのスペース・改行位置といった「見た目のルール」を自動で揃えるツールです。Ctrl+S のたびに整形されるよう設定しておくと、書き方の細部を考える時間がまるごと消えます。学習中は「動くこと」に集中でき、あとから自分のコードを読み返したときも読みやすい。この章はそのための設定を、迷いようがない順番で並べます。
8.1 フォーマッターとリンターは役割が違う
混同されがちですが、両者は目的が別です。片方だけでも成立しますが、役割を知っておくと拡張機能を選ぶときに迷いません。
| 観点 | フォーマッター | リンター |
|---|---|---|
| やること | コードの見た目を機械的に整える | 問題になりそうな書き方を指摘する |
| 代表例 | Black、Ruff formatter、autopep8 | Flake8、Pylint、Ruff linter |
| コードの意味 | 変えない | 変えない(指摘するだけ) |
| 結果の見え方 | 保存すると勝手に整う | 波線や一覧で警告が出る |
まず入れるべきはフォーマッターです。リンターは、書けるコードが増えて「未使用の変数」「使っていない import」が気になり始めてからで間に合います。
8.2 保存時に自動整形させる設定(3ステップ)
保存時整形が動かない原因は、ほぼこの3つのどれかが欠けていることです。逆に言えば、3つ揃えれば動きます。
-
1フォーマッターの拡張機能を入れる
Black Formatter(
ms-python.black-formatter)か Ruff(charliermarsh.ruff)のどちらか。Python拡張には整形機能が含まれていないため、この拡張を入れないと何も起きません。 -
2Python用の既定フォーマッターを指定する
settings.jsonの"[python]"の中でeditor.defaultFormatterを指定します。ここを飛ばすと、整形時に「どのフォーマッターを使うか」を毎回聞かれて止まります。 -
3保存時整形を有効にする
"editor.formatOnSave": true。全言語に効かせたくない場合は、手順2と同じ"[python]"の中に入れれば Python ファイルだけに限定できます。
Black を使う場合の最小構成は次のとおりです。Ctrl+Shift+P →「基本設定: ユーザー設定を開く (JSON)」で開いたファイルに追記します。
{
"[python]": {
"editor.defaultFormatter": "ms-python.black-formatter",
"editor.formatOnSave": true
}
}
Ruff を使う場合は、指定先を差し替えるだけです。
{
"[python]": {
"editor.defaultFormatter": "charliermarsh.ruff",
"editor.formatOnSave": true
}
}
設定したら、わざとスペースを乱した行を作って Ctrl+S してください。整った瞬間が動作確認です。何も起きない場合は8.7の確認順へ進んでください。
8.3 Black — 選択肢が少ないことが価値
Black は「スタイルで議論させない」ことを狙ったフォーマッターです。Black 公式ドキュメント(The Black code style)はスタイルの設定項目を意図的に絞っていると明言しており、既定の1行の長さは 88文字、文字列は原則ダブルクォートに統一されます。要素の末尾に自分でカンマを付けると1行に収まる場合でも複数行に展開される(マジックトレーリングカンマ)といった決まりもあります。
うれしいのは、誰が書いても同じ形に落ちるので、スタイルを迷う時間がなくなることです。学習中でも「この改行位置で合っているのか」と悩む回数が減ります。
拡張機能はBlack本体を同梱しており(2026年8月時点の拡張機能ページの表記では black=26.1.0)、pip install black をしなくても保存時整形は動きます。プロジェクトやCIとバージョンを揃えたいときだけ、仮想環境に入れたBlackを使わせる設定に変更します。
{
"black-formatter.args": ["--line-length", "100"],
"black-formatter.importStrategy": "fromEnvironment"
}
importStrategy の既定は useBundled(拡張に同梱されたBlackを使う)で、fromEnvironment にすると選択中の環境にインストールされたBlackを優先します。「人によって整形結果が違う」を避けたいときは、pip install black したうえで fromEnvironment に切り替えるのが確実です。
8.4 Ruff — 整形とチェックを1つにまとめる
Ruff は Rust で書かれた高速なツールで、リンターとフォーマッターを兼ねます。フォーマッターは Black の代替として設計されており、Ruff 公式ドキュメント(Formatter)は「既存の Black 整形済みコードに対してほぼ同一の出力を出すことを意図している」と述べ、多数のBlack整形済みプロジェクトでの検証で99.9%を超える行が同一に整形されたと説明しています。ただし f-string の波括弧内を整形するなど、意図的な差異も公式に明記されています。完全一致が保証されるわけではない点は押さえておいてください(2026年8月時点の公式ドキュメント)。
VSCode拡張はRuff本体を同梱しており(2026年8月時点の拡張機能ページの表記で ruff==0.16.2。同梱バージョンは拡張の更新で変わります)、こちらも pip install ruff なしで動きます。整形に加えて、保存時の自動修正やimport並べ替えまでやらせるなら次の設定です。
{
"[python]": {
"editor.defaultFormatter": "charliermarsh.ruff",
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.fixAll.ruff": "explicit",
"source.organizeImports.ruff": "explicit"
}
}
}
source.fixAll.ruff は自動修正できる指摘(未使用importの削除など)を保存時に適用し、source.organizeImports.ruff は import を並べ替えます。"explicit" は「明示的に保存したときに実行する」という指定です。
source.fixAll を有効にすると、書きかけの import が保存のたびに消えることがあります(まだ使っていないため未使用と判定される)。学習中で戸惑うなら、まずは整形だけを有効にして、慣れてから自動修正を足すほうが安全です。
8.5 Black と Ruff、どちらを選ぶか
どちらも無料で、保存時整形という目的だけ見れば体感差はほとんどありません。判断材料は「自分の状況」です。
| 観点 | Black Formatter | Ruff |
|---|---|---|
| 拡張機能の提供元 | Microsoft | Astral |
| 役割 | 整形のみ | 整形+リンター+import整理 |
| 速度 | 学習用途では気にならない | 大きなコードベースで差が出る |
| スタイル | 広く使われている基準 | Black互換を目指す(一部差異あり) |
| 拡張だけで動くか | 動く(本体同梱) | 動く(本体同梱) |
| 向いている人 | 教材や記事どおりに進めたい人 | ツールを1つにまとめたい人 |
迷ったら、最初のうちは Black をおすすめします。書籍や記事の前提になっていることが多く、困ったときに検索で答えが見つかりやすいからです。自分のコードが増えて「未使用importの掃除まで自動でやりたい」と感じたら Ruff に一本化する、という順番が自然です。
逆に、BlackとRuffの両方を整形役として同時に有効にするのは避けてください。どちらが最後に走ったかで結果が変わり、Gitの差分が無意味に増えます。整形役はどちらか一方に決める、が鉄則です。
8.6 import の並べ替え(isort との関係)
整形とは別に、import 文を標準ライブラリ・サードパーティ・自作の順に並べ替える機能があります。Black は整形しかしないため、Blackを使う構成では isort 拡張(ms-python.isort)を追加し、保存時のコードアクションで呼び出します。
{
"[python]": {
"editor.defaultFormatter": "ms-python.black-formatter",
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.organizeImports": "explicit"
}
}
}
一方 Ruff では、ruff format 自体は import を並べ替えません。Ruff 公式ドキュメント(Sorting imports)もリンター側の I ルール(ruff check --select I --fix)と組み合わせる運用を案内しています。VSCode上では前述の source.organizeImports.ruff がその役目です。
整形とimport整理は別物、と覚えておくと「保存しても import の順番が直らない」という混乱を避けられます。
8.7 フォーマッターが効かないときの確認順
保存しても何も起きないときは、次の順に見ると原因が1つに絞れます。上ほど頻度が高い原因です。
| # | 確認すること | 直し方 |
|---|---|---|
| 1 | フォーマッター拡張が入っているか | 拡張機能タブで ms-python.black-formatter または charliermarsh.ruff を検索して導入 |
| 2 | editor.defaultFormatter が "[python]" の中にあるか | 別の言語の設定の中や、括弧の外に書いていないか確認 |
| 3 | editor.formatOnSave が true か | ワークスペース設定側で false に上書きされていないかも見る |
| 4 | 右下の言語モードが「Python」か | 拡張子が .py でない・新規未保存ファイルだと対象外 |
| 5 | ファイルに構文エラーが無いか | 括弧やコロンの閉じ忘れがあると整形自体ができない |
| 6 | 出力パネルにエラーが出ていないか | 「出力」タブのドロップダウンで Black Formatter / Ruff を選ぶと理由が読める |
手っ取り早い切り分けとして、コマンドパレットの「ドキュメントのフォーマット」(Format Document)を実行してみてください。ここで整形されるなら、フォーマッター自体は正常で formatOnSave の設定だけが問題だと分かります。整形されないなら、拡張機能か構文エラー側が原因です。
設定の競合が疑わしいときは、Ctrl+, の設定画面で formatOnSave と検索し、「ユーザー」と「ワークスペース」のタブを見比べます。ワークスペース設定はユーザー設定より優先されるため、プロジェクト側で切られているケースが見落とされがちです。
8.8 チームやCIと結果を揃える
1人で学習している間はエディターの設定だけで足りますが、他の人と同じコードを触るなら、整形ルールをプロジェクトのファイルに置いておくと安全です。BlackもRuffも pyproject.toml の設定を読みます。
[tool.black]
line-length = 100
[tool.ruff]
line-length = 100
こうしておけば、エディターから整形しても、ターミナルから black . や ruff format . を実行しても同じ結果になります。既存プロジェクトへ後から導入する場合は、最初の一括整形だけを独立したコミットに分けると、後から履歴を追う人が「中身の変更」と「整形だけの変更」を区別できます。
保存するたびにコードが整う状態になりました。以降、インデントや空白を自分で直す作業はゼロになります。整形結果に驚いたときは、コードが壊れたのではなくツールが決めた形に寄せられただけです。Ctrl+Z で戻す前に一度読んでみると、読みやすい書き方の基準がそのまま身につきます。
9. おすすめ settings.json 設定
Ctrl+Shift+P → 「基本設定: ユーザー設定を開く (JSON)」で設定ファイルを開きます。
9.1 ユーザー設定とワークスペース設定の違い
VSCodeの設定は2層構造です。ここを理解しておくと、「家では効いていた設定が、このプロジェクトでは効かない」の理由がすぐ分かります。
| ユーザー設定 | ワークスペース設定 | |
|---|---|---|
| 適用範囲 | すべてのプロジェクト | そのフォルダーだけ |
| ファイルの場所 | OS側のユーザーフォルダー内 | プロジェクト/.vscode/settings.json |
| 優先度 | 低い | 高い(こちらが勝つ) |
| 共有 | 自分専用 | Gitに入れればチームで共有できる |
| 向いている内容 | フォントサイズ・テーマ・キー操作 | 使うPython・整形ルール・除外フォルダー |
ユーザー設定ファイルの実体は、Windows なら %APPDATA%\Code\User\settings.json、macOS なら ~/Library/Application Support/Code/User/settings.json、Linux なら ~/.config/Code/User/settings.json です。とはいえ手で探す必要はほぼなく、コマンドパレットから開くのが確実です。
9.2 まず入れておきたいユーザー設定
次の内容は、Pythonを学び始めた時点でそのまま使える構成です。コメント付きで貼れるよう、行ごとに意味を添えています(settings.json は // のコメントを書ける形式です)。
{
// エディター基本設定
"editor.fontSize": 14,
"editor.tabSize": 4,
"editor.insertSpaces": true,
"editor.wordWrap": "on",
"editor.minimap.enabled": false,
"editor.rulers": [88],
"editor.renderWhitespace": "boundary",
// Python設定
"python.languageServer": "Pylance",
"python.analysis.typeCheckingMode": "basic",
"python.analysis.autoImportCompletions": true,
// フォーマッター設定
"[python]": {
"editor.defaultFormatter": "ms-python.black-formatter",
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.organizeImports": "explicit"
}
},
// ターミナル設定
"terminal.integrated.fontSize": 13,
// ファイル設定
"files.autoSave": "afterDelay",
"files.autoSaveDelay": 1000,
"files.trimTrailingWhitespace": true,
"files.insertFinalNewline": true,
// テーマ(お好みで)
"workbench.colorTheme": "Default Dark Modern",
"workbench.iconTheme": "material-icon-theme"
}
1点だけ前提があります。source.organizeImports は import の並べ替えを担当する拡張機能(Black構成なら ms-python.isort)が入っていないと何も起きません。この行を活かすなら isort 拡張もあわせて導入してください。詳しくは8.6で解説しています。
| 設定 | 効果 | 変えるとどうなるか |
|---|---|---|
editor.rulers | 指定した桁に縦線を引く | Blackの既定(88文字)に合わせると、整形後の折り返し位置が事前に見える |
editor.renderWhitespace | 空白を点で表示 | タブとスペースの混在に気づける(PythonのIndentationError予防) |
python.analysis.typeCheckingMode | Pylanceの型チェックの強さ | off/basic/より厳しいモードがある。最初は basic が扱いやすい |
python.analysis.autoImportCompletions | 補完候補からimportを自動追加 | pd. と打つと import pandas as pd を提案してくれる |
files.autoSave | 一定時間後に自動保存 | 保存時整形と組み合わせると、打鍵の途中で整形が走って驚くことがある。気になるなら off |
files.insertFinalNewline | ファイル末尾に改行を入れる | Gitの差分に「\ No newline at end of file」が出なくなる |
"files.autoSave": "afterDelay" と formatOnSave を同時に使うと、入力を止めた瞬間に整形が走ります。書きかけの行が勝手に動くのが気持ち悪ければ、自動保存を "off" にして Ctrl+S を押すタイミングを自分で決めるほうが快適です。
9.3 プロジェクト側に置くワークスペース設定
使うPythonや整形ルールは、プロジェクト側に置いたほうが事故が減ります。.vscode/settings.json は手で作って構いません。.vscode フォルダーごと自分で作り、その中にこのファイルを置けば読み込まれます(VSCode側の操作で自動生成されることもあります)。
{
"[python]": {
"editor.defaultFormatter": "ms-python.black-formatter",
"editor.formatOnSave": true
},
"python.testing.pytestEnabled": true,
"python.testing.pytestArgs": ["tests"],
"files.exclude": {
"**/__pycache__": true
}
}
files.exclude はエクスプローラーの表示から隠す設定です。__pycache__ を隠すだけで、ファイル一覧がぐっと読みやすくなります。
10. 覚えておきたいショートカット
全部覚える必要はありません。最初の1週間は下の「編集の基本」だけで十分です。手が勝手に動くようになったら次の表へ進んでください。マウスに戻る回数が減るほど、書く速度より「試す速度」が上がります。
編集の基本
| ショートカット (Win) | Mac | 動作 |
|---|---|---|
| Ctrl+S | Cmd+S | 保存(フォーマッター設定済みならここで整形) |
| Ctrl+Z | Cmd+Z | 元に戻す |
| Ctrl+/ | Cmd+/ | 行コメントのオン/オフ |
| Alt+↑/↓ | Option+↑/↓ | 行を上下に移動 |
| Shift+Alt+↑/↓ | Shift+Option+↑/↓ | 行をコピーして上下に追加 |
| Ctrl+D | Cmd+D | 同じ単語を次々と複数選択 |
| Ctrl+Shift+K | Cmd+Shift+K | 行を削除 |
| Tab / Shift+Tab | Tab / Shift+Tab | 選択範囲のインデントを深く/浅く |
移動と検索
| ショートカット (Win) | Mac | 動作 |
|---|---|---|
| Ctrl+Shift+P | Cmd+Shift+P | コマンドパレット(迷ったらここ) |
| Ctrl+P | Cmd+P | ファイルを素早く開く |
| Ctrl+` | Ctrl+` | ターミナルを開く/閉じる |
| Ctrl+B | Cmd+B | サイドバーの表示/非表示 |
| Ctrl+F | Cmd+F | このファイル内を検索 |
| Ctrl+Shift+F | Cmd+Shift+F | 全ファイル検索 |
| Ctrl+H | Cmd+H | 置換 |
| Ctrl+G | Ctrl+G | 行番号を指定して移動(トレースバックの行へ飛ぶ) |
Python開発で効くもの
| ショートカット (Win) | Mac | 動作 |
|---|---|---|
| F2 | F2 | 変数名・関数名を一括リネーム(呼び出し側も追従) |
| F12 | F12 | 定義へジャンプ(ライブラリの中身も読める) |
| Alt+← | Ctrl+- | ジャンプ前の場所に戻る |
| Ctrl+Space | Ctrl+Space | コード補完を手動で表示 |
| Ctrl+Shift+Space | Cmd+Shift+Space | 引数のヒントを表示(何番目の引数かが分かる) |
| Ctrl+F5 | Ctrl+F5 | デバッグなしで実行 |
| F5 | F5 | デバッグ実行 |
| Shift+Alt+F | Shift+Option+F | ドキュメント全体をフォーマット(保存を待たずに整形) |
覚え方のコツは、「マウスでやった操作を1つだけキーに置き換える」を毎日続けることです。キー割り当てはコマンドパレットの「基本設定: キーボードショートカット」から確認・変更できます。
11. 効率的な開発ワークフロー
VSCodeはカスタマイズ自由度が高いため、人によって生産性が大きく変わります。ここではPython開発を始めたばかりの方向けに、最初に押さえておくと差がつく実践テクニックを紹介します。環境の連携(§4)とデバッグ構成(§7)は済んでいる前提です。
11.1 .gitignore は最初に作る
Pythonプロジェクトでは、コミットしてはいけないファイルが決まっています。仮想環境フォルダ・キャッシュ・秘密情報をGit管理から外すために、プロジェクト作成時に .gitignore を作っておく習慣が重要です。
# .gitignore(Python プロジェクト推奨テンプレート)
__pycache__/
*.py[cod]
*.egg-info/
# 仮想環境
.venv/
venv/
env/
# IDE(.vscode には共有したいファイルもあるので、丸ごとは無視しない)
# ローカル固有の設定まで共有したくない場合だけ、次の行のコメントを外す
# .vscode/settings.json
.idea/
# 環境変数・秘密情報
.env
.env.local
*.key
secrets/
# OS が自動生成するファイル
.DS_Store
Thumbs.db
ひとつ注意点があります。.gitignore でコメントとして扱われるのは行頭の # だけで、行の途中に書いた # はパターンの一部になります。.venv/ # 仮想環境 のように書くと「.venv/ # 仮想環境 という名前のもの」を探しにいくため、書いたのに無視されないという分かりにくい事故になります。注釈は必ず独立した行に書いてください。なお .vscode/settings.json を除外するかどうかは中身しだいなので、判断の基準は11.3にまとめました。
11.2 ターミナル統合と pip コマンドを使い分ける
統合ターミナルが仮想環境を自動でアクティベートすること(§4.3)を利用して、OSのコマンドプロンプトでなくVSCode内のターミナル(Ctrl+`)から pip install すると、誤ってシステム全体に余計なパッケージを入れる事故を防げます。
ターミナルは + ボタンで複数開けます。「実行用」と「pip install 用」を分けておくと、実行中のプログラムを止めずにライブラリを追加できます。分割表示アイコンで左右に並べれば、両方を同時に見られます。
11.3 .vscode フォルダーは何を共有するか
チームでリポジトリを共有するとき、.vscode の中身をコミットすべきか迷います。判断基準は「機械が違っても意味を持つか」です。
| ファイル | 共有 | 理由 |
|---|---|---|
launch.json | する | 実行方法はプロジェクト固有の知識。新メンバーがすぐ動かせる |
extensions.json | する | 推奨拡張として提示され、初回に導入を案内できる |
settings.json | 内容による | 整形ルールは共有価値あり。絶対パスや個人の好みは入れない |
.env | しない | 秘密情報。.gitignore に必ず入れる |
{
"recommendations": [
"ms-python.python",
"ms-python.black-formatter"
]
}
これを置いておくと、そのフォルダーを初めて開いた人に「推奨拡張機能をインストールしますか」と案内が出ます。読者が自分1人でも、PCを買い替えたときの自分への引き継ぎとして役に立ちます。
11.4 テストの実行もVSCodeから
関数を書くようになったら、テストの自動実行を覚えると学習効率が変わります。フラスコのアイコン(テスト)から pytest を有効にすると、テスト関数の横に再生ボタンが出て、1つずつ実行できます。設定は §9 のワークスペース設定に書いた python.testing.pytestEnabled と python.testing.pytestArgs の2行です。
「変更する → テストを走らせる → 緑になる」のループが速くなるほど、思い切ってコードを直せるようになります。
12. よくあるトラブルと対処(症状別の逆引き)
VSCodeでPython開発を始めたばかりの方が遭遇しがちな問題と、その解決法をまとめます。エラーメッセージそのままで検索する前に、まずここをチェックしてみてください。本ページで解決しないエラーメッセージは、Pythonでよくあるエラーと解決法もあわせて確認してください。
| 症状 | いちばん多い原因 | 飛び先 |
|---|---|---|
| 赤い波線で「import を解決できません」 | インタープリターの選択ずれ | 12.1 |
| F5でPythonの選択肢が出ない | Python拡張が無効 | 12.2 |
| 保存しても整形されない | defaultFormatter 未設定 | 8.7 |
| 日本語入力でカーソルがずれる | インライン候補との衝突 | 12.4 |
| pip install したのに import できない | 入れた環境と実行環境が別 | 12.5 |
python が認識されない | PATH未設定・未インストール | 12.6 |
| Activate.ps1 が実行できない | PowerShellの実行ポリシー | 4.3 |
| デバッグが止まらない/止まりすぎる | ブレークポイント位置と justMyCode | 12.7 |
12.1 「Pylance が import を解決できない」と表示される
症状:自作モジュールやpipでインストールしたパッケージに対して、赤い波線で「unresolved import」と表示される。実行はできるのに補完が効かない状態です。
原因:VSCodeが現在のワークスペースのPythonインタープリターを正しく認識できていません。pip installしたのにシステムPythonが選ばれている、または仮想環境が切り替わっていないケースが多いです。
対処:Ctrl+Shift+P → 「Python: Select Interpreter」で正しいインタープリター(プロジェクト内の .venv 等)を選び直します。それでも解決しない場合はVSCodeを一度リロード(Ctrl+Shift+P → 「Developer: Reload Window」)してください。
自作モジュールだけが解決できない場合は、importの基準になるフォルダーがずれています。src フォルダーの中にコードを置いている構成などでは、ワークスペース設定に解析対象のパスを足すとPylanceが認識します。
{
"python.analysis.extraPaths": ["src"]
}
12.2 デバッグの F5 で「Python ファイルとして実行できない」
症状:F5を押すと選択画面が出るが、Python用の選択肢が現れない、または実行が始まらない。
対処:拡張機能タブで Python(Microsoft公式) がインストール・有効化されているか確認します。インストール直後はVSCodeの再起動が必要な場合があります。それでも動かない場合は、.vscode/launch.json を §7.3 のテンプレートから手動で作成すると確実です。
12.3 「Linter / Formatter が動かない」
症状:保存時にBlackやRuffのフォーマットが実行されない。
対処:(1) フォーマッターの拡張機能が入っているか(ms-python.black-formatter または charliermarsh.ruff。本体は拡張に同梱されているため pip install は必須ではありません)、(2) settings.json の "[python]" の中に "editor.formatOnSave": true と "editor.defaultFormatter" があるか、(3) 右下の言語モードが「Python」になっているかを確認します。詳しい手順は§8.7の確認順にまとめました。
12.4 「日本語入力が変・カーソル位置がずれる」
症状:日本語入力中に変換候補ウィンドウが変な位置に出る、確定後にカーソル位置がずれる。
対処:GitHub Copilot などが出すインライン候補がIMEと衝突しているケースがあります。設定で「inline suggest」や「IME」を検索し、関連オプションを一時的にオフにして再現するか確かめてください。改善しない場合はVSCodeを最新版にアップデートすると解決することが多いです。
12.5 「ターミナルで pip install したのに使えない」
症状:VSCodeのターミナルで pip install requests したのに、コード上ではimportエラー。
対処:ターミナルがアクティベートしているPythonと、コード実行時のPythonが一致していない典型例です。ターミナルで python -c "import sys; print(sys.executable)" を実行して使われているPythonのパスを確認し、Ctrl+Shift+P → 「Python: Select Interpreter」で同じものを選ぶことで解決します。切り分けの表は§4.4にあります。
12.6 「python は認識されていません」とターミナルに出る
症状:ターミナルで python と打つと「'python' は、内部コマンドまたは外部コマンド…として認識されていません」と表示される。Microsoft Store が勝手に開く場合もあります。
原因:Python本体が入っていないか、入っていてもPATHに登録されていません。VSCodeの問題ではなく、Python側の設定です。
対処:Windows では py --version を試してください。これが通るならPython自体はあり、python というコマンド名が通っていないだけです。py -m pip install ... のように py 経由で使うか、インストーラーを再実行して「Add python.exe to PATH」を有効にします。詳細はPythonインストールのトラブル対処にまとめています。Store のインストール画面が開く場合は、設定の「アプリ実行エイリアス」で python の項目をオフにすると止まります。
12.7 デバッグが止まらない/止まりすぎる
症状A(止まらない):ブレークポイントを置いたのに素通りして終了する。赤丸が白い輪郭(灰色)に変わっていることがあります。
原因と対処:その行が実行されていない、または実行しているファイルが別というのが大半です。launch.json の program が ${file} なら「いま開いているファイル」が対象なので、別のファイルを開いたまま F5 を押していないか確認してください。関数の中に置いたブレークポイントは、その関数が呼ばれなければ止まりません。まず if __name__ == "__main__": の直後など、確実に通る行で試すと切り分けられます。
症状B(止まりすぎる):ライブラリの内部やまったく身に覚えのないファイルで停止してしまう。
原因と対処:justMyCode が false になっていると、標準ライブラリや外部ライブラリの中でも例外で停止します。自分のコードだけを追いたいときは true(省略時の既定)に戻してください。逆に、ライブラリの中で何が起きているか読みたいときだけ false にします。
もう1つ、「実行とデバッグ」パネルのブレークポイント一覧で「Raised Exceptions(発生した例外)」にチェックが入っていると、処理として握りつぶされている例外でも毎回止まります。覚えのない場所で止まるときはここも見てください。
VSCode + Pythonのトラブルは、筆者の経験ではその大半が 「インタープリターの選択」「拡張機能の有効化」「VSCodeの再起動」 のいずれかで解決します。エラー検索の前にまずこの 3 点をチェックする習慣をつけると、解決時間が大幅に短縮されます。
13. よくある質問
VSCodeとPyCharm、初心者はどちらを選ぶべきですか?
どちらでもPythonは学べます。VSCodeはPython以外の言語やMarkdown、Web制作でも同じエディターを使い回せる点と、動作が軽い点が利点です。PyCharmはPython専用に作られていて、最初から入っている機能だけで完結しやすいのが利点です。無料で使える範囲や提供形態は変更されることがあるため、PyCharmを検討する場合は開発元の公式ページで最新の条件を確認してください。この記事の手順はVSCodeを前提にしていますが、途中で乗り換えても学んだ内容(仮想環境・フォーマッター・デバッグの考え方)はそのまま通用します。
VSCodeは無料で使えますか?
VSCode本体はMicrosoftが無料で配布しており、この記事で紹介した設定はすべて無料の範囲で完結します。Python拡張・Pylance・Python Debugger・日本語化パック・Black Formatter・Ruffのいずれも追加費用はかかりません。有料になり得るのは、GitHub Copilotのような別サービスと連携する拡張や、GitLensの一部機能です。学習を始めるにあたって支払いが必要になる場面はありません。
VSCodeを日本語化するにはどうすればいいですか?
拡張機能タブで「Japanese Language Pack for Visual Studio Code」(MS-CEINTL.vscode-language-pack-ja)をインストールし、案内に従って再起動すればメニューが日本語になります。切り替わらないときは、コマンドパレット(Ctrl+Shift+P)で「Configure Display Language」を実行し、一覧から日本語を選んでください。英語のままにしておくと、エラーメッセージをそのまま検索したときに海外の情報が見つけやすいという利点もあるため、慣れてきたら好みで選べます。
GitLensは有料になったのですか?
無料で使える範囲は残っています。開発元の案内では、無料のCommunityでもブレーム注釈・ホバー表示・CodeLens・ファイル履歴のたどり直しといった中心機能が使えます。一方でLaunchpad(プルリクエストの整理)や、プライベートリポジトリでのCommit Graph・Visual File History・Worktreesなどは有料プラン(Pro / Advanced)の対象として案内されています。2026年8月時点の公式ページに基づく整理で、条件は変更されることがあるため、業務で使う予定があるなら提供元の料金ページで最新の条件を確認してください。Pythonの学習を進めるだけなら、無料の範囲で足ります。
VSCodeを入れればPython本体は不要ですか?
必要です。VSCodeはコードを書くためのエディターで、Pythonを実行する機能そのものは持っていません。Python本体を別途インストールし、この記事の§3でその場所をVSCodeに教える、という2段構えになります。まだPython本体を入れていない場合はPythonのインストール手順を先に済ませてください。ターミナルで python --version がバージョンを返せば準備できています。
メモリ8GBのパソコンでもVSCodeでPython開発はできますか?
できます。VSCodeはエディターとしては軽い部類で、学習用の小さなスクリプトを書く分には8GBでも困りません。動作が重く感じるときは、使っていない拡張機能を無効にする、開いているフォルダーを小さくする、ブラウザのタブを減らすといった対処が効きます。ただし、データ分析で大きなCSVを読み込む、機械学習のライブラリを動かすといった段階に進むとメモリが不足しやすくなります。買い替えを検討する時期に来たらPython学習用パソコンの選び方と推奨スペックを参考にしてください。
AIのコード補完は最初から入れるべきですか?
急ぐ必要はありません。学習の初期は、書けなかった箇所が自分の理解の穴を教えてくれる貴重な情報です。AI補完を最初から常時オンにすると、その穴が見えないまま進んでしまいます。一方で、定型的な処理を書く場面や、エラーの原因を調べる場面では時間の節約になります。まずはPylanceの補完(型やメソッド名の候補)だけで進め、基本文法をひととおり書けるようになってから導入を検討するのが、遠回りに見えて確実です。
ここまでで、補完が効き、保存すると整形され、F5で変数の中身を追えるエディターができました。あとは書くだけです。次はPythonの基本構文を、やりたいこと別に見渡すところから始めましょう。実際に動かす題材が欲しくなったら初心者向けアプリ100本にコード付きのサンプルがあります。
エディタの次は、学習を支える環境づくりを。体系的に学べるPythonのおすすめ本9冊(レベル別)と、用途別の必要スペックをまとめたPython学習用パソコンの選び方が参考になります。