サイドバーの「Django ドキュメント検索」というプレースホルダの入った検索では、Django ドキュメント (Django 2.1) の公式サイト内を検索できます
VS Code で Python をデバッグする

目次

はじめに

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}"
        },
        .
        .
        .

PythonユーザのためのJupyter[実践]入門

おまけ

構成ファイルに使用する属性や、定義済変数の一覧を以下に掲載します。

構成の属性一覧

デバッグの構成属性の一覧は下記のようになっています。
(https://code.visualstudio.com/docs/python/debugging)

名前 説明
name VS Code のドロップダウンリストに表示されるデバッグ設定の名前。
type 利用するデバッガタイプ。 Python の場合は、"python" のままにしておく。
request デバッグ開始時のモードを指定する。

launch デバッガ を "program" で指定したファイルに対して実行する
attach 既に実行しているプロセスに対してデバッガをアタッチする
program Python プログラムのエントリーモジュールをフルパスで指定する。
${file} を指定すればエディタ上で現在アクティブなファイルを指定できる。
pythonPath デバッグで使用する Pyton インタープリタの入ったフォルダを指定する。
指定しない場合は、設定の python.pythonPath で指定されたインタープリタが使用される。
args Python プログラムに渡す引数を指定する。
(例)

"args": [
   "--quiet", "--norepeat"
],
stopOnEntry true を指定するとプログラムの最初の行でデバッガを止める。何も指定しない(デフォルト)か false を指定すると、デバッガは最初のブレイクポイントで止まる。
console 出力先を指定する。

"none" VS Code debug console
"integratedTerminal" (default) VS Code Integrated Terminal
"externalTerminal" コンソールウィンドウ
cwd デバッガのカレント作業ディレクトリ。コードで利用される相対パスのベースフォルダとなる。指定しない場合は ${workspaceFolder} (VS Code で開いたフォルダ) がデフォルト。
debugOptions 追加オプションの配列。

"RedirectOutput"(default) デバッガ出力を全て VS Code デバッグ出力ウィンドウに出力する。指定しない場合は、デバッガ出力ウィンドウには表示されない。

console で integratedTerminal や externalTerminal を指定している場合は、このオプションを使わない事が多い。

 "DebugStdLib" 標準ライブラリのデバッグを有効にする。
"Django" Django 特化のデバッグ機能を有効にする。
"Sudo" "console" "externalTerminal" と共に使うと、管理者権限を要するアプリケーションの
デバッグができる。
"Pyramid" Pyramid のアプリケーションをデバッグする時に使う。
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}

参考

低価格なのに高速・多機能・高セキュリティ 月額400円(税別)から最大容量100GB WordPress専用高速サーバー Z.com WP
おすすめの記事