「Visual Studio CodeでPythonデバッグ実行」の版間の差分

提供: Eospedia
移動: 案内検索
(デバッガに環境変数を渡す)
行30: 行30:
 
     ]
 
     ]
 
}
 
}
 +
</pre>
 +
 +
* Windowsの場合
 +
** ディレクトリのセパレータはバックスラッシュだが、あとに続く文字によっては特殊文字と見なされてしまうので、バックスラッシュは二重にして書く。
 +
** パスを続けて2つ以上書く場合、例えば次のようにする。
 +
<pre>
 +
            "env": {
 +
                "PYTHONPATH": "${workspaceFolder};C:\\Users\\hogeta\\hoge\\fuga"
 +
            }
 
</pre>
 
</pre>
  

2020年11月20日 (金) 14:44時点における版

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

参考: 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}"
            }
        }
    ]
}
  • Windowsの場合
    • ディレクトリのセパレータはバックスラッシュだが、あとに続く文字によっては特殊文字と見なされてしまうので、バックスラッシュは二重にして書く。
    • パスを続けて2つ以上書く場合、例えば次のようにする。
            "env": {
                "PYTHONPATH": "${workspaceFolder};C:\\Users\\hogeta\\hoge\\fuga"
            }

現在のデバッグ行に飛ぶ

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

参考: 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