Visual Studio CodeでPythonデバッグ実行

提供: Eospedia
移動: 案内検索

デバッガに環境変数を渡す

参考: VSCode 用のlaunch.jsonでデバッグコマンドに環境変数 / 引数 / フラグを渡す設定

launch.jsonに環境変数を記述すればよい。

例:PythonのモジュールサーチパスPYTHONPATHを追加する

{
    // IntelliSense を使用して利用可能な属性を学べます。
    // 既存の属性の説明をホバーして表示します。
    // 詳細情報は次を確認してください: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: モジュール",
            "type": "python",
            "request": "launch",
            "module": "instamatic"
        },
        {
            "name": "Python: Current File",
            "type": "python",
            "request": "launch",
            "program": "${file}",
            "console": "integratedTerminal",
            "env": {
                "PYTHONPATH": "${workspaceFolder}"
            }
        }
    ]
}

現在のデバッグ行に飛ぶ

コールスタックペインに表示されている一番上の項目をクリックすれば、現在デバッグしている行(正確にはこれから実行する行)に飛べる。デバッグ中にファイルをいろいろ移動して迷子になってしまったときに、デバッグ行に戻れる。

参考: https://stackoverflow.com/a/56270324

モジュールのデバッグ

スクリプトではなくモジュール(インポートで呼び出される側のコード)をデバッグする場合は、モジュールとしてデバッグする。

例:ワークスペースフォルダに置いてあるinstamatic.server.tem_serverというモジュール (ファイルとしては${workspaceFolder}/instamatic/server/tem_server.py)をデバッグしたいとき

{
    // IntelliSense を使用して利用可能な属性を学べます。
    // 既存の属性の説明をホバーして表示します。
    // 詳細情報は次を確認してください: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: debug tem_server module",
            "type": "python",
            "request": "launch",
      "cwd": "${workspaceFolder}",
            "module": "instamatic.server.tem_server"
        }
    ]
}

標準ライブラリや外部ライブラリの中までステップインする

デバッグの設定ファイルであるlaunch.jsonにて、justMyCodeオプションをFalseとすればよい、とのこと

参考: https://srbrnote.work/archives/4231