Visual Studio CodeでPythonデバッグ実行
提供: Eospedia
目次
デバッグ設定ファイル launch.json
launch.jsonで使える定義済み変数
https://code.visualstudio.com/docs/editor/variables-reference
デバッガに環境変数を渡す
参考: 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"
}
モジュールのデバッグ
スクリプトではなくモジュール(インポートで呼び出される側のコード)をデバッグする場合は、モジュールとしてデバッグする。
例:ワークスペースフォルダに置いてある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
デバッガ使い方
現在のデバッグ行に飛ぶ
コールスタックペインに表示されている一番上の項目をクリックすれば、現在デバッグしている行(正確にはこれから実行する行)に飛べる。デバッグ中にファイルをいろいろ移動して迷子になってしまったときに、デバッグ行に戻れる。
参考: https://stackoverflow.com/a/56270324