QGIS3のプラグインをVisualStudioでデバッグするための設定

QGIS3 Pythonプログラミングのための設定」のページでは、QGISをインストールした環境でPythonプログラミングするための設定をしました。その環境でもQGISプラグイン開発は可能と思いますが、VisualStudioを使ってプラグインデバッグができるように設定していきます。

尚、このページで使用しているサンプルのプラグインは「QGIS3 Plugin Builderでプラグイン作成」で作成したものを使用しています。


Python開発環境をインストールする

インストーラーを起動する

f:id:Chiakikun:20190429142435p:plain

Visual Studio Installerが起動したら、『Python 開発』を選択します。今回はQGISのインストール時に付属しているPythonを使いたいので、オプションの赤丸部分の選択は全て解除します。解除したら、『変更』ボタンを押下します。

 

ダイアログが出てきたら

f:id:Chiakikun:20180825123315p:plain

途中、上のようなダイアログが出てくる場合があります。この場合、VisualStudioを閉じてから、ダイアログの『続行』ボタンを押下してください。

 

Pythonを選択する

f:id:Chiakikun:20190429142706p:plain

VisualStudioを起動してみて、『言語』→『Python』を選択すると、項目が増えています。これでVisualStudioにPython開発環境がインストールされました。


プラグインをVisualStudioに読み込ませる

プラグインのソリューションファイルを作成する

f:id:Chiakikun:20190429143013p:plain

QGIS3 Plugin Builderでプラグイン作成」で作成したプラグインのソリューションファイルを作成します。VisualStudioを起動して、メニューの『新しいプロジェクトの作成』を選択し、『言語』→『Python』を選択します。表示された項目の中から、『既存のPythonコードから』を選択します。

プラグインを選択する

f:id:Chiakikun:20190429143320p:plain

場所には「QGIS3 Plugin Builderでプラグイン作成」で作成したプラグインの保存先を指定します。
 

 

f:id:Chiakikun:20190429143502p:plain

『完了』ボタンを押下します。


QGISPython環境を取り込む

Python環境を追加する

f:id:Chiakikun:20190429143545p:plain

f:id:Chiakikun:20190429143801p:plain

読み込みに成功すると、ソリューションエクスプローラーにプラグインのファイルが全部表示されます。次にQGISに付属のPython環境をVisualStudioで使うための設定をします。Python環境を右クリックして『環境を追加』を選択します。

 

QGISに付属のPythonのパスを設定する

f:id:Chiakikun:20190429144213p:plain

『既存の環境』を選択します。

 

f:id:Chiakikun:20190429144259p:plain

プレフィックスPython.exeが置かれているパスを指定します。QGIS3.6.1では「C:\Program Files\QGIS 3.6\apps\Python37」に置かれています。プレフィックスの設定に成功すると、他の項目が自動で設定されます。


QGISのモジュール設定

モジュールが見つからない

f:id:Chiakikun:20190429151505p:plain

test_plugin.pyのコードを開くと、qgiscoreライブラリが見つけられていないので、設定します。

 

検索パスを追加

f:id:Chiakikun:20190429155007p:plain

ソリューションエクスプローラーの『検索パス』を右クリックして、『フォルダーを検索パスに追加』を選択します。選択ダイアログが表示されたら、QGIS3.6の場合は「C:\Program Files\QGIS 3.6\apps\qgis\python」を選択します。成功すると、ソースコードqgis.coreの下のニョロニョロが消えます。


デバッグ

プロセスにアタッチ

f:id:Chiakikun:20190429155439p:plain

QGISを起動した状態で、VisualStudioの『デバッグ』→『プロセスにアタッチ』を選択します。

f:id:Chiakikun:20190429155610p:plain

qgis-bin.exeを選択してアタッチボタンを押下します。

 

ブレークポイントを設置する

f:id:Chiakikun:20190429155655p:plain

適当なところにブレークポイントを置きます。

 

デバッグしてみる

f:id:Chiakikun:20190429155757p:plain

QGISに戻ってプラグインを実行してみます。すると...

 

f:id:Chiakikun:20190429155840p:plain

ブレークポイントのところで止まりました。


 

お疲れ様でした。