【Python】VSCode で外部モジュール・外部ライブラリも含めてデバッグする方法

外部モジュールも含めてデバッグする方法の解説ページアイキャッチ

このページにはプロモーションが含まれています

このページでは VSCode で外部モジュール・ライブラリも含めてデバッグする方法について解説していきたいと思います。

VSCode では、Python プラグイン(拡張機能)を導入する事で簡単にステップ実行等のデバッグを行うことができるようになります。

Pythonプラグイン

ただし、初期状態では、ステップ実行等が行えるのは内部モジュール(自身で作成している Python スクリプト)のみになります。

一方、import を行って使用している外部モジュールや外部ライブラリについてはステップ実行等のデバッグが行えません。

デバッグできるものとできないもの

このページでは、これらの外部モジュール・外部ライブラリも含めて VSCode でデバッグを行う方法について解説していきます。

外部モジュール・外部ライブラリも含めてデバッグを行う方法

VSCode で Python の外部モジュール・外部ライブラリを含めてデバッグを行うためには、 justMyCode 設定を false にすれば良いです。

設定

この設定は launch.json で行います。

launch.json に下記の緑背景部分のように justMyCode 設定の追記を行います。

launch.json
{
    // IntelliSense を使用して利用可能な属性を学べます。
    // 既存の属性の説明をホバーして表示します。
    // 詳細情報は次を確認してください: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: Current File",
            "type": "python",
            "request": "launch",
            "program": "${file}",
            "console": "integratedTerminal",
            "justMyCode" : false
        }
    ]
}

これだけで外部モジュールに対してステップイン実行等のデバッグが行えるようになります。

MEMO

launch.json が無い方は、下記手順で作成することができます。

  1. メニューバーの「実行」をクリック
  2. 「構成を開く」をクリック
  3. 「Python File」をクリック

スポンサーリンク

動作確認

試しに下記のような Python スクリプトで動作確認を行ってみます。

確認用のテストスクリプト
import tkinter

tkinter.Tk()

print("test!")

import を行っている tkinter は Python3 であれば追加でインストールしなくてもデフォルトで付属してくる外部モジュールになります。

tkinter.Tk() 部分は外部モジュールのメソッド呼び出しですので、通常はステップイン実行が行えません(ステップ実行してもメソッド内に入り込まず、ただの1行として処理される)。

しかし、justMyCodefalse に設定しているとステップイン実行を行うことができます。

それを確かめるために、下記の黄色背景部分にブレークポイントを貼ってみましょう。

確認用のテストスクリプト
import tkinter

tkinter.Tk()

print("test!")

この動作確認用の .py ファイルを開いた状態でデバッグを開始すれば(メニューバーの「実行」をクリックし、さらに「デバッグの開始」をクリック)、スクリプトが実行されてすぐにブレークポイントを設定した箇所で動作が停止します。

ブレークポイントの設定

この状態でステップイン実行を行うと、tkinter モジュールの Tk メソッドに入り込み、そのメソッドの先頭でスクリプト実行を停止することができます。

外部モジュールをデバッグする様子

内部モジュール同様に、この状態からステップ実行も行うことができますし、各変数の中身を確認することができます。

こんな感じで、自身で作成したモジュールだけでなく、import で取り込んだ外部モジュールや外部ライブラリに対してもステップ実行を行い、デバッグすることが可能になります。

ただし、justMyCode でデバッグできる外部ライブラリは .py ファイルの部分のみです。

Python 以外で作成された .so ファイル等で提供されているライブラリに関しては別の方法を利用する方法があります(しかも結構手間がかかる…)。この方法は下記で解説していますので、Python 以外で作成したライブラリもステップ実行したい場合はこちらも是非お読みください!

PythonとOpenCVの混合デバッグ方法解説ページのアイキャッチ VSCode で Python と OpenCV を混合でデバッグ(ステップ実行)する方法!

まとめ

このページでは VScode で外部モジュール・外部ライブラリも含めてデバッグを行う方法について解説しました!

これが行えるようになることで、下記のメリットがあります。

  • 外部モジュールでエラーが発生した原因が解明できる
  • 外部モジュールの作りが理解できる(ヘルプを参照するよりも詳しく知れる)
  • 外部モジュールのソースコードを動きを追いながら読める(勉強になる!)

外部モジュールを使い込むだけでなく、良質なソースコードを読む点においてもオススメです!

設定自体は簡単ですので、是非この機会に設定する or 設定方法を覚えておきましょう!

同じカテゴリのページ一覧を表示