VSCodeでPythonコードを効率的にデバッグする方法:コマンドライン引数付きデバッグをマスターしよう!

この記事は約4分で読めます。
スポンサーリンク

VSCodeでPythonコードをデバッグする際に、引数付きで実行したい場面は多くあると思います。しかし、従来のコマンドプロンプトで実行していた方法では、デバッグが非常に面倒でした。

この記事では、VSCodeのデバッグ機能を使って、引数付きでPythonコードを効率的にデバッグする方法を紹介します。

Vscodeへのフォルダ(ディレクトリ)のロード方法

まず、VSCodeにデバッグしたいPythonファイルがあるフォルダを認識させる必要があります。

  1. VSCodeを開き、左側のツールバーから「エクスプローラ」を選択します。
  2. 表示された領域に、デバッグしたいPythonファイルがあるフォルダをドラッグ&ドロップします。

これで、VSCodeがフォルダ内のファイルを読み込み、デバッグの準備が整いました。

上の画像のように、開いているエディターのところにデバッグしたファイルがあればOKです。

デバッグ情報設定

1.デバッグしたいPythonファイルを選択してください。

2.左側のツールバーから「実行とデバッグ」ボタンをクリックします。

3.「実行とデバッグ」画面が表示されるので、「launch.jsonファイルを作成します。」をクリックします。

4.「Select a debug configuration」というウィンドウが表示されるので、「Python File Debug the currently active Python file」を選択します。

これで、launch.jsonファイルが生成されます。このファイルは、デバッグ実行時に参照される設定ファイルです。

これは、以下のように実行したいファイルと同階層に「.vscode」という隠しフォルダの下に生成されます。

そして生成されたjsonファイルの中身が以下です。

これが、デバッグ実行するときに参照されて実行されます。

引数情報の設定

launch.jsonファイルに引数を設定するパラメータを追加します。

  1. launch.jsonファイルを開き、"configurations"配列内のオブジェクトに"args"というパラメータを追加します。
  2. "args"はリスト型なので、カンマ(,)区切りで改行して複数の引数を設定できます。
  3. 上記の"console": "integratedTerminal"の最後にカンマ(,)を入れるのを忘れないでください。
{
    // IntelliSense を使用して利用可能な属性を学べます。
    // 既存の属性の説明をホバーして表示します。
    // 詳細情報は次を確認してください: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: Current File",
            "type": "python",
            "request": "launch",
            "program": "${file}",
            "console": "integratedTerminal",
            "args":
            [
                "D:\\Pythonテスト\\sound_rec\\test"
            ]
        }
    ]
}

※ フォルダ指定の `\\` は2つ付けてください。一つでは正しく認識されません。

実行とデバッグ結果

設定が完了したら、デバッグを開始します。

  1. 「実行とデバッグ」画面で「Python: Current File」を選択し、緑色の再生ボタンをクリックします。

これで、引数が指定されてPythonコードが実行され、デバッグを開始できます。

まとめ

ちょっと設定するのが面倒くさいですが、VSCodeのデバッグ機能を使えば、引数付きでPythonコードを効率的にデバッグすることができます。

いざ設定さえ終わればコマンドプロンプトでのデバッグに比べて、はるかに簡単で便利なので、ぜひ活用してみてください。

おすすめのPython学習本を知りたい場合はこちら

コメント

タイトルとURLをコピーしました

Fatal error: Uncaught Error: Call to undefined function wp_parse_auth_cookie() in /home/c5994206/public_html/niyanmemo.com/wp-includes/user.php:3632 Stack trace: #0 /home/c5994206/public_html/niyanmemo.com/wp-content/plugins/microsoft-clarity/clarity-server-analytics.php(105): wp_get_session_token() #1 /home/c5994206/public_html/niyanmemo.com/wp-content/plugins/microsoft-clarity/clarity-server-analytics.php(35): clarity_construct_collect_event() #2 /home/c5994206/public_html/niyanmemo.com/wp-includes/class-wp-hook.php(341): clarity_collect_event() #3 /home/c5994206/public_html/niyanmemo.com/wp-includes/class-wp-hook.php(365): WP_Hook->apply_filters() #4 /home/c5994206/public_html/niyanmemo.com/wp-includes/plugin.php(522): WP_Hook->do_action() #5 /home/c5994206/public_html/niyanmemo.com/wp-includes/load.php(1308): do_action() #6 [internal function]: shutdown_action_hook() #7 {main} thrown in /home/c5994206/public_html/niyanmemo.com/wp-includes/user.php on line 3632