QGIS3のプラグインをVisualStudioでデバッグするための設定
- Python開発環境をインストールする
- プラグインをVisualStudioに読み込ませる
- QGISのPython環境を取り込む
- QGISのモジュール設定
- デバッグ
- Visual Studio Codeでデバッグする場合
このページでは、QGISのプラグインをVisualStudioを使ってデバッグができるように設定していきます。デバッグに使ったプラグインは「QGIS3 Plugin Builderでプラグイン作成」で作成したものを使用しています。
QGISをインストールした環境でPythonプログラミングするための環境設定が未だ済んでいない場合は「QGIS3 Pythonプログラミングのための設定」のページで紹介している設定を行ってください。
Python開発環境をインストールする
インストーラーを起動する
Visual Studio Installerが起動したら、『Python 開発』を選択します。今回はQGISのインストール時に付属しているPythonを使いたいので、オプションの赤丸部分の選択は全て解除します。解除したら、『変更』ボタンを押下します。
ダイアログが出てきたら
途中、上のようなダイアログが出てくる場合があります。この場合、VisualStudioを閉じてから、ダイアログの『続行』ボタンを押下してください。
Pythonを選択する
VisualStudioを起動してみて、『言語』→『Python』を選択すると、項目が増えています。これでVisualStudioにPython開発環境がインストールされました。
プラグインをVisualStudioに読み込ませる
プラグインのソリューションファイルを作成する
「QGIS3 Plugin Builderでプラグイン作成」で作成したプラグインのソリューションファイルを作成します。VisualStudioを起動して、メニューの『新しいプロジェクトの作成』を選択し、『言語』→『Python』を選択します。表示された項目の中から、『既存のPythonコードから』を選択します。
プラグインを選択する
場所には「QGIS3 Plugin Builderでプラグイン作成」で作成したプラグインの保存先を指定します。
『完了』ボタンを押下します。
QGISのPython環境を取り込む
Python環境を追加する
読み込みに成功すると、ソリューションエクスプローラーにプラグインのファイルが全部表示されます。次にQGISに付属のPython環境をVisualStudioで使うための設定をします。Python環境を右クリックして『環境を追加』を選択します。
QGISに付属のPythonのパスを設定する
『既存の環境』を選択します。
プレフィックスにPython.exeが置かれているパスを指定します。QGIS3.6.1では「C:\Program Files\QGIS 3.6\apps\Python37」に置かれています。プレフィックスの設定に成功すると、他の項目が自動で設定されます。
QGISのモジュール設定
モジュールが見つからない
test_plugin.pyのコードを開くと、qgiscoreライブラリが見つけられていないので、設定します。
検索パスを追加
ソリューションエクスプローラーの『検索パス』を右クリックして、『フォルダーを検索パスに追加』を選択します。選択ダイアログが表示されたら、QGIS3.6の場合は「C:\Program Files\QGIS 3.6\apps\qgis\python」を選択します。成功すると、ソースコードのqgis.coreの下のニョロニョロが消えます。
デバッグ
プロセスにアタッチ
QGISを起動した状態で、VisualStudioの『デバッグ』→『プロセスにアタッチ』を選択します。
qgis-bin.exeを選択してアタッチボタンを押下します。
ブレークポイントを設置する
適当なところにブレークポイントを置きます。
ブレークポイントで止めてみる
ブレークポイントのところで止まりました。
Visual Studio Codeでデバッグする場合
Pythonのパス設定
まずはQGISと一緒にインストールされているPythonを環境変数PATHに追加します。方法はこちらを参考にしてください。
VSCodeでプラグインのフォルダを開く
次にデバッグしたいプラグインがインストールされているフォルダを調べて...
VSCodeでそのフォルダを開きます。左のウィンドウから拡張子が.pyのファイルを選択すると、Pythonの拡張機能のインストールをお勧めされます。
VSCodeにPython拡張をインストールする
お勧めされた拡張機能をインストールします。
インストール後、PythonがVSCodeに認識されていれば、右下にこのように表示がされます。
デバッグを実行する
QGISを起動した状態で、VSCodeでF5キーを押してデバッグしてみます。すると上のようなウィンドウが表示されるので「プロセスIDを使用して接続する」を選択します。
QGISのプロセスを選択します。検索窓で「q」と入力すると、QGISが一番上に表示されると思います。
こんな感じになっていればOKです。適当な場所にブレークポイントを置いて...
正常に設定されていれば、このようにブレークポイントでプラグインが止まります。
launch.jsonを作成する
左のウィンドウに「launch.jsonファイルを作成します」と表示されているので、クリックすると...
デバッグ構成を選択するウィンドウが表示されるので、「プロセスIDを使用して接続する」を選択します。
すると上のようなlaunch.jsonが作成されます。
お疲れ様でした。