Visual Studio Code(VS Code) でAnaconda Pythonプロジェクトの作成とデバッグを行う

2023年8月31日

今回はPythonプロジェクトのの作成デバッグを確認します。前回の「Visual Studio Code(VS Code)のインストールとAnaconda Pythonの利用方法メモ」ではpythonのコードを書いて実行も行いましたが、動作確認のための簡易的な方法でした。今回はより一般的な方法でVS Code上にPythonのプロジェクトを作成します。




Pythonプロジェクトの作成する

ワークスペースにフォルダを登録してPythonファイルを作成する

最初にプロジェクトに利用するフォルダを作成しておきます。場所はどこでも大丈夫です。私はDocumentsの直下にPyProject01という名前のフォルダを作成しました。このフォルダワークスペースとしてVS Codeに登録します。

/Users/masa/Documents/PyProject01

 

VS Codeを起動してメニューバー(モニター画面の左上です)[ファイル]-[フォルダーをワークスペースに追加]をクリックします。

 

上記で作成しておいたPyProject01フォルダを指定します。「追加」をクリック

 

このフォルダー内のファイルの作成者を信頼しますか?」とパネル開くので「親フォルダー’Documents’内のすべてのファイルの作成者を信頼します」をチェックして、「はい、作成者を信頼します」をクリックします。

 

エクスプローラーを開きます。PyProject01が追加されました。

 

Pythonファイルを追加しますPyProject01をクリックしての右側のアイコンをクリックします。

 

ファイル名を入力します。ここではDebug.pyとしました。

 

Debug.pyが表示されました。ここにpythonコードを入力します。


Debug.py

def calculate_sum(a, b):
    result = a + b
    return result

def main():
    total = 0
    for i in range(3):
        total += calculate_sum(i, i+1)
    print("Total:", total)

if __name__ == "__main__":
    main()

 

フォントサイズの調整

少しフォントが小さいので調整します。VS Codeメニューバーから[Code]-[基本設定]-[設定]の順にクリックして設定画面を開きます。

 

[テキストエディター]-[フォント]を開いて、Font Sizeを変更します。Font Size12から18に変更しました。

 

フォント調整もできたので、プログラムが正しく動くことを確認します。右上の実行ボタンをクリックしましょう。

 

ターミナルTotal: 9と表示されました。正しく動いています。

 

Pythonファイルの実行をショートカットキーに登録する

プログラムの実行は頻繁に使う機能なので、この操作をショートカットキーに登録しておくと便利です。
メニューバーから[Code]-[基本設定]-[キーボードショートカット]をクリックします。

 

キーボードショートカットの設定パネルが開きます

 

検索フォームに「実行」と入力します。

 

Python: ターミナルでPythonファイルを実行する」の左側のプラスマークをクリックして表示される空白フォームショートカットキーを登録します。入力したショートカットキー他の操作と重複してる場合VS Codeが「*つの既存のコマンドがこのキーバインドを使用しています」と教えてくれます。今回は「command + control + r」をPythonのファイル実行操作として登録しました。これで次回からpythonのコード実行する場合はこのショートカットキーが使えます。

 

ワークスペースを保存する

最後にワークスペースを名前をつけて保存します。メニューバー[ファイル]-[名前を付けてワークスペースを保存]です。ワークスペースファイルPyProject01フォルダ直下、Debug.pyと同じ場所に保存します。




Pythonプロジェクトのデバッグ操作

簡易的なデバッグ操作

続いてデバッグ機能を確認します。最初にブレークポイントを設定します。カーソルプログラムの行番号の左側に持っていくと赤いマークが現れるのでブレークポイントをおきたい場所にクリックします。ここでは6行目のtotal = 0のところに設定します。

 

この状態でVS Codeメニューバー[実行]-[デバッグの開始]を選択します。

 

Python ファイル 現在アクティブなPythonファイルをデバッグする」を選択します。

 

VS Codeの画面がデバッグモードに切り替わります。ブレークポイントを設定した場所からステップ実行していきます。VS Codeの画面中央上に実行コマンドのアイコンが表示されます。ここからデバッグ操作します。先ほどフォルダとpythonファイルが表示されていたエクスプローラーにはデバッグ用のプログラム変数が表示されます。

 

アイコンの順番左から:| 続行 | ステップオーバー | ステップイン | ステップアウト | 再起動 | 停止 |

 

とりあえずステップオーバー2回クリックして8行目まで進めます。黄色の枠の矢印マークが現在の場所です。

 

ここでcalculate_sum関数に引数を渡します。ここではステップインをクリックします。

 

すると矢印がcalculate_sum関数がある2行目に移動します。ここで左側の変数の値を確認しつつステップオーバーをクリックして先に進みます。

 

return resultには1が入っていることが左側の変数パネルで確認できます。

 

再度ステップオーバーをクリックしてcalculate_sumを抜けます。このような操作を行いながら変数の値を確認しつつプログラムを読み進めていきます。こうすることで普段は頭の中だけ追っているプログラムの挙動を1行づつ確認することができます。今回はここで続行ボタンをクリックして実行をプログラムの最後まで進めます。

 

最後まで実行したのでターミナルTotal: 9が表示されています。

 

launch.jsonファイルを設定したデバッグ

上記の例では1つのファイルでプログラムが完結していますが外部モジュールをインポートした場合はそちらのモジュール側の挙動も調べたい場合があると思います。そのような場合は最初にlaunch.jsonファイルを作成し、設定パラメータを変更することでこの操作が可能になります。

launch.jsonの作成は最初にデバッグを行うpythonファイルフォルダを開いておいて左側のアクティビティバーにある「実行とデバッグ」をクリックします。

 

プライマリーサイドバーに「実行とデバッグ」が表示されるのでこの中の「launch.jsonファイルを作成します」をクリックします。

 

Python ファイル 現在アクティブなPythonファイルをデバッグする」をクリック。

 

launch.jsonファイルが作成されます。launch.jsonはフォルダの直下に.vscodeフォルダが作成されてその中に保存されます。

 

外部モジュールデバッグ(ステップ実行)で読み込めるようにするには、launch.jsonファイルの“justMyCode": trueの項目を“justMyCode": falseに変更することでその操作を行えます。

変更したらファイルを保存してください。
[ファイル]-[保存]もしくはショートカットキーでcommand + s です。
保存したらlaunch.jsonを閉じても大丈夫です。

 

あとは先ほどと同じ手順でブレークポイントを置いて、ステップ実行してききます。ここでは34行目にブレークポイントを設定しましいた。このコードはvispyというライブラリからモジュールをインポートしています。正しく設定されていれば外部モジュールの機能(クラス、関数、、)を使っている箇所(ここでは34行目)でステップインを実行すると該当するモジュールのファイルを読み込むことができます。

 

34行目でステップインする。

 

外部モジュールを読み込みました、正しく動いています。

 

以上デバッグ操作をざっと説明しました。
今回は画面下のパネル内にあるデバッグコンソールは使いませんでしたがこれも合わせて使うとより詳細なデバッグが行えます。