0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

launch.json を活用して VS Code デバッグ環境を最適化

Posted at

launch.json とは?

launch.jsonVS Codeデバッグ構成 を定義するための設定ファイルになります。このファイルを使うことで、どのようにデバッグ実行するか を設定できます。Pythonでの開発において便利だったので忘備録として記録します。


launch.json の場所

基本はVS Code のプロジェクトフォルダ内の .vscode/launch.json に配置します。


Python の launch.json の基本構造

Python のデバッグ設定を launch.json に記述すると、例えば以下のようになります。

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: ファイルを実行",
            "type": "python",
            "request": "launch",
            "program": "${file}",
            "console": "integratedTerminal"
        }
    ]
}

設定項目の解説

設定キー 説明
"version" 設定のバージョン (通常 0.2.0)
"configurations" 複数のデバッグ設定を配列で定義
"name" デバッグ構成の名前 (VS Code のデバッグメニューに表示)
"type" 使用するデバッガ (python に設定)
"request" launch(新しいプロセスで開始)または attach(既存のプロセスにアタッチ)
"program" 実行したい Python ファイルのパス (${file} は現在開いているファイル)
"console" integratedTerminal(VS Code のターミナルで実行)

name任意の名前 を自由に決めて大丈夫です。
VS Code の デバッグメニュー に表示される名前なので、わかりやすいものを設定すると便利です。
複数の設定を定義するときは、name を工夫すると何をデバッグするのか管理しやすくなります。

① シンプルな名前

{
    "name": "Python: メインスクリプト"
}
  • シンプルに「メインスクリプト」として、どの設定かわかりやすく。

② プロジェクト名を入れる

{
    "name": "MyProject: 開発モード"
}
  • プロジェクト名 を入れることで、複数のデバッグ設定がある場合でも識別しやすい。

③ 実行環境ごとに分ける

{
    "name": "Flask API (開発環境)"
}
{
    "name": "Flask API (本番環境)"
}
  • 環境 (開発・本番など) を区別すると便利。

④ テスト実行用の設定

{
    "name": "pytest: 単体テスト"
}
  • テスト用のデバッグ設定 だと一目でわかる。

カスタマイズ例

① コマンドライン引数を渡す

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: 引数あり",
            "type": "python",
            "request": "launch",
            "program": "${workspaceFolder}/script.py",
            "args": ["arg1", "arg2"],
            "console": "integratedTerminal"
        }
    ]
}
  • args"arg1", "arg2" を指定すると、script.pypython script.py arg1 arg2 のように実行される。

② 環境変数を設定

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: 環境変数設定",
            "type": "python",
            "request": "launch",
            "program": "${workspaceFolder}/app.py",
            "console": "integratedTerminal",
            "env": {
                "API_KEY": "your_api_key",
                "DEBUG": "true"
            }
        }
    ]
}
  • env で環境変数を設定し、Python コード内で os.environ["API_KEY"] のように取得可能。

③ FastAPI のデバッグ

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "FastAPI: サーバー起動",
            "type": "python",
            "request": "launch",
            "module": "uvicorn",
            "args": [
                "main:app",
                "--host", "127.0.0.1",
                "--port", "8000",
                "--reload"
            ],
            "jinja": true
        }
    ]
}
  • "module": "uvicorn" → uvicorn を使って FastAPI アプリを起動。
  • "args" に FastAPI アプリのモジュール名 (main:app) を指定。
  • --host, --port, --reload で開発環境向けの設定を追加。

④ 既存の Python プロセスにアタッチ

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: アタッチ",
            "type": "python",
            "request": "attach",
            "connect": {
                "host": "localhost",
                "port": 5678
            }
        }
    ]
}
  • 既に動作中の Python アプリ(例えばサーバー)にデバッガを接続。
  • debugpy を使って待機させると、この設定でアタッチできる。
設定 用途
引数を渡す "args": ["arg1", "arg2"] コマンドライン引数付き実行
環境変数を設定 "env": { "API_KEY": "xxx" } API キーや設定値の管理
標準的な FastAPI デバッグ "module": "uvicorn" Web アプリのデバッグ
既存プロセスにアタッチ "request": "attach" すでに動作しているアプリにデバッガ接続

まとめ

  • VS Code のデバッグ構成を定義するファイル。
  • .vscode/launch.json に配置される。
  • デバッグの効率化: 毎回手動でスクリプトを実行する手間を省ける。
  • 環境ごとの設定を簡単に切り替え可能: "configurations" で複数のデバッグ設定を管理。
  • コマンドライン引数や環境変数を自由に変更できる: フレキシブルな開発環境を実現。 - Python 以外にも JavaScript、Node.js、Go など様々な言語に対応。
  • 基本のデバッグ設定を作成し、プロジェクトごとにカスタマイズするのがベスト!
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?