
目次
はじめに
Visual Studio Code (以下 VS Code) は、コードを書くためのエディタとしてだけでなくデバッガとして使うこともできます。この記事では、VS Code で Python のデバッグを行うための設定についてまとめました。構成ファイルの属性や、定義済変数の一覧についても掲載しています。
準備
拡張機能をインストールする
VS Code で Python コードを書く際には、Python 拡張機能をあらかじめインストールしておきます。画面左のアイコンから拡張機能を選択して、Python 拡張機能をインストールしておきます。
こちらの記事を参考にして、仮想環境についても設定しておくと良いでしょう。
構成を開く
デバッグの設定は、適当なフォルダを開いた状態で、デバッグ > 構成を開く > Python として launch.json (.vscode/launch.json ) ファイルを開いて設定します。ここには、JSON 形式でデフォルトの構成が登録されています。一度構成を開くと、デフォルトの構成が有効になります。
デバッグボタンを押してから、上部の「デバッグ▶」の右にある構成コンボボックスから構成の一覧を選択できるようになります。("name" 属性に指定された構成名が表示されます。)
ここではひとまず一番上の "Current FIle" を選択しておきます。この構成は、エディタ上のアクティブなカレントファイルをデバッグ実行するための基本的な構成になっています。
デバッグ実行する
デバッグ実行するには、エディタ上でデバッグしたいファイルをアクティブにしておき、デバッグ > デバッグの開始 もしくは F5 を押します。
また、行番号の左側スペースをクリックするとブレークポイントを設定できます。ブレークポイントを設定して実行すると、ブレークポイントで実行が一旦停止します。停止後は、変数の値を確認したり、ステップイン、ステップアウト、続行等で少しずつ実行したり再開することができます。
ファイルのディレクトリで実行する
"Current FIle" の構成では、「VS Code で開いたフォルダ」が作業フォルダになります。プロジェクトをデバッグするには便利です。
一方で、単一のファイルをデバッグする際には、対象とするファイルのフォルダを作業フォルダにしたいですね。その場合には、"cwd" 属性を明示的に指定します。ファイル自身のフォルダは ${fileDirname} で指定できますので、下記のように構成 (Exec on File Dir) を追加すると良いでしょう。
"configurations": [ { "name": "Python: Current File", "type": "python", "request": "launch", "program": "${file}" }, { "name": "Python: Exec on File Dir", "type": "python", "request": "launch", "program": "${file}", "cwd": "${fileDirname}" }, . . .
おまけ
構成ファイルに使用する属性や、定義済変数の一覧を以下に掲載します。
構成の属性一覧
デバッグの構成属性の一覧は下記のようになっています。
(https://code.visualstudio.com/docs/python/debugging)
名前 | 説明 | ||||||||||
name | VS Code のドロップダウンリストに表示されるデバッグ設定の名前。 | ||||||||||
type | 利用するデバッガタイプ。 Python の場合は、"python" のままにしておく。 | ||||||||||
request | デバッグ開始時のモードを指定する。
|
||||||||||
program | Python プログラムのエントリーモジュールをフルパスで指定する。 ${file} を指定すればエディタ上で現在アクティブなファイルを指定できる。 |
||||||||||
pythonPath | デバッグで使用する Pyton インタープリタの入ったフォルダを指定する。 指定しない場合は、設定の python.pythonPath で指定されたインタープリタが使用される。 |
||||||||||
args | Python プログラムに渡す引数を指定する。 (例)
|
||||||||||
stopOnEntry | true を指定するとプログラムの最初の行でデバッガを止める。何も指定しない(デフォルト)か false を指定すると、デバッガは最初のブレイクポイントで止まる。 | ||||||||||
console | 出力先を指定する。
|
||||||||||
cwd | デバッガのカレント作業ディレクトリ。コードで利用される相対パスのベースフォルダとなる。指定しない場合は ${workspaceFolder} (VS Code で開いたフォルダ) がデフォルト。 | ||||||||||
debugOptions | 追加オプションの配列。
|
||||||||||
env | デバッグ時に追加する環境変数を指定する | ||||||||||
envFile | 環境変数を定義するファイルを指定する( Configuring Python environments - environment variable definitions file. 参照) | ||||||||||
gevent | true に設定すると gevent monkey-patched code. のデバッグが有効になる |
定義済変数
定義済変数の一覧は下記の通りです。
(https://code.visualstudio.com/docs/editor/variables-reference)
名前 | 説明 |
${workspaceFolder} | VS Code で開いたフォルダ |
${workspaceFolderBasename} | VS Code で開いたフォルダ名 (/を含まない) |
${file} | カレントで開いているファイル |
${relativeFile} | カレントで開いているファイル (workspaceFolder からの相対指定) |
${fileBasename} | カレントで開いているファイルのベース名 |
${fileBasenameNoExtension}
|
カレントで開いているファイルのベース名 (拡張子を含まない) |
${fileDirname} | カレントで開いているファイルのディレクトリ名 |
${fileExtname} | カレントで開いているファイルの拡張子 |
${cwd} | スタートアップ時のカレントランナーのカレント作業ディレクトリ |
${lineNumber} |
アクティブファイルの選択されている行番号
|
${selectedText} | アクティブファイルの選択テキスト |
${config:Name} |
VS Code の設定を参照する。(Name には設定名を指定する)
(例) ${config:editor.fontSize}
|
${command:CommandID} |
VS Code のコマンドを参照する。
(例) ${command:explorer.newFolder}
|