Visual Studio Code(VSCode)で Python を書くための初期設定をまとめます。本サイトはエディタを VSCode に揃える前提で、後続の記事もスクリーンショット例などを VSCode で取っています。

最初の準備に時間をかけすぎる必要はありません。「補完」「整形」「実行・デバッグ」 の 3 つが動けば学習を始められます。

目次

  1. 入れておく拡張機能
  2. インタプリタ(Python 本体)を選ぶ
  3. Linter / Formatter(ruff)
  4. 補完と型チェック(Pylance)
  5. デバッガの基本
  6. ターミナルの統合
  7. 推奨ワークスペース設定の例

入れておく拡張機能

最低限の構成として次の 3 つを入れます。Marketplace で名前検索 → Install を押すだけです。

拡張機能用途
Python(Microsoft)言語サポート・デバッガ・テストランナーの土台
Pylance(Microsoft)型推論・補完・ジャンプの高速化
Ruff(Astral Software)高速 Linter / Formatter。後述の ruff と連携

Python を入れると Pylance が一緒に入ることが多いですが、入っていなければ単独でも追加してください。

任意で便利な拡張は次の通りです。

拡張機能用途
Jupyter.ipynb を VSCode 内で開く・実行する
GitLensGit の履歴・変更行を可視化
Even Better TOMLpyproject.toml の編集

インタプリタ(Python 本体)を選ぶ

VSCode は「どの Python を使うか」を明示する必要があります。プロジェクトを開いたら、コマンドパレット(Mac は Cmd+Shift+P、Windows は Ctrl+Shift+P)から Python: Select Interpreter を実行します。

./.venv/bin/python のように、プロジェクト内の venv を選ぶのが推奨です。グローバル環境を選ぶと、別プロジェクトと依存パッケージが衝突しやすくなります。

選択した結果は .vscode/settings.json に保存されます(ワークスペース単位)。

{
"python.defaultInterpreterPath": "./.venv/bin/python"
}

Windows の場合は ./.venv/Scripts/python.exe になります。

Linter / Formatter(ruff)

ruff は Rust 製の Linter / Formatter で、Python の世界では事実上の標準になりつつあります。後述の black 互換の整形もこなします。

インストール

ruff は Python パッケージとしての本体VSCode 拡張機能 の両方が必要です。

Terminal window
pip install ruff

VSCode 側の Ruff 拡張を入れた状態で、ワークスペース設定に整形ルールを追加します。

{
"editor.formatOnSave": true,
"editor.defaultFormatter": "charliermarsh.ruff",
"[python]": {
"editor.defaultFormatter": "charliermarsh.ruff",
"editor.codeActionsOnSave": {
"source.fixAll": "explicit",
"source.organizeImports": "explicit"
}
}
}

これで保存時に自動整形と未使用 import の整理が入ります。

プロジェクト固有のルール

pyproject.toml を作って ruff のルールを書いておくと、人と環境を揃えられます。

[tool.ruff]
line-length = 100
target-version = "py312"
[tool.ruff.lint]
select = ["E", "F", "I", "B", "UP"]
ignore = ["E501"]
[tool.ruff.format]
quote-style = "double"
indent-style = "space"

select の値はそれぞれ「pycodestyle のエラー」「pyflakes」「isort」「flake8-bugbear」「pyupgrade」のチェック項目です。詳細は ruff のドキュメント を参照します。

black を使う場合

歴史的に black を使ってきたチームでは、black + isort の組み合わせも引き続き有効です。

Terminal window
pip install black isort

settings.json 側を次のように切り替えます。

{
"[python]": {
"editor.defaultFormatter": "ms-python.black-formatter"
}
}

新規のプロジェクトでは ruff だけで済ませる構成が増えています。本サイトでは ruff を標準 にします。

補完と型チェック(Pylance)

Pylance はデフォルトで補完が効きますが、より厳しめにしたい場合は次を入れます。

{
"python.analysis.typeCheckingMode": "basic",
"python.analysis.autoImportCompletions": true
}

basic で十分な学習効果があります。strict まで上げると、教材コードでも警告が多く出るので、慣れるまでは basic を勧めます。

デバッガの基本

VSCode の左側に「実行とデバッグ(虫アイコン)」があります。Python ファイルを開いた状態で F5 を押すと、現在のファイルをそのまま実行できます。

ブレークポイントは行番号の左をクリックして付けます。実行が止まると、左側パネルに変数の値が並びます。

複雑なデバッグ構成を保存したい場合は、.vscode/launch.json を作成します。

{
"version": "0.2.0",
"configurations": [
{
"name": "Python: 現在のファイル",
"type": "debugpy",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal"
},
{
"name": "Python: モジュール",
"type": "debugpy",
"request": "launch",
"module": "src.main",
"console": "integratedTerminal"
}
]
}

ターミナルの統合

VSCode 内のターミナルを開く(Ctrl+` )と、自動で venv を有効化してくれます。Windows の PowerShell で Activate.ps1 が拒否される場合は、#2-1「Python のインストール (Windows 編)」 の対処を参照してください。

推奨ワークスペース設定の例

ここまでをまとめると、.vscode/settings.json は次のような形になります。

{
"python.defaultInterpreterPath": "./.venv/bin/python",
"python.analysis.typeCheckingMode": "basic",
"editor.formatOnSave": true,
"editor.defaultFormatter": "charliermarsh.ruff",
"[python]": {
"editor.defaultFormatter": "charliermarsh.ruff",
"editor.codeActionsOnSave": {
"source.fixAll": "explicit",
"source.organizeImports": "explicit"
}
},
"files.exclude": {
"**/__pycache__": true,
"**/.pytest_cache": true
}
}

このファイル自体は Git に入れて構いません。ただし API キーなどの個人設定は settings.json ではなく .env(#2-8「API キーや秘密情報の安全な扱い方」)で管理します。

まとめ

  • 拡張機能は Python / Pylance / Ruff の 3 点で開始できる
  • インタプリタは プロジェクト内の venv を選ぶ
  • 整形は ruff に任せ、保存時 formatOnSave で自動化する
  • 型チェックは Pylance を basic から始める
  • デバッガは F5 で動く。複数構成は launch.json に保存する