書き込みのIDE設定とデバッグプラグイン

各プログラマが自分の好みのIDE /テキストエディタがありますが、ここでの書き込みのために人気のIDEのを設定し、QGIS Pythonのプラグインをデバッグするためのいくつかの推奨事項があります。

Windows上でIDEを設定するメモ

Linuxではプラグインを開発するために必要な追加の構成はありません。しかし、Windows上では、同じ環境設定を持ち、QGISと同じライブラリとインタプリタを使用することを確認する必要があります。これを行うための最速の方法は、QGISの起動バッチファイルを変更することです。

OSGeo4Wインストーラを使用した場合はOSGeo4Wインストールの `` bin``フォルダの下にこれを見つけることができます。ファイル:: `C:\ OSGeo4W \ビン\ QGIS-unstable.bat`のようなものを探してください。

`Pyscripter IDE <http://code.google.com/p/pyscripter> ` _を使用するために、しなければならないことは:

  •  :file: `QGIS-unstable.bat`のコピーを作成し、名前を ``pyscripter.bat``に変更します。

  • エディタで開きます。そして、最後の行、QGISを起動するもの、を削除します。

  • Pyscripter実行ファイルを指す行を追加し、(> = 2.0 QGISの場合は2.7)を使用するPythonのバージョンを設定し、コマンドライン引数を追加します

  • さらに、QGISが使用するPythonのDLLをPyscripterが見つけられるフォルダを指す引数を追加します。これはOSGeoWインストールのbinフォルダの下に見つけることができます

    @echo off
    SET OSGEO4W_ROOT=C:\OSGeo4W
    call "%OSGEO4W_ROOT%"\bin\o4w_env.bat
    call "%OSGEO4W_ROOT%"\bin\gdal16.bat
    @echo off
    path %PATH%;%GISBASE%\bin
    Start C:\pyscripter\pyscripter.exe --python25 --pythondllpath=C:\OSGeo4W\bin

これで、このバッチファイルをダブルクリックすれば、正しいパスでPyscripterが開始するようになります。

開発者の中ではEclipseがPyscripterよりも人気が高く、よく選択されます。以下のセクションでは、プラグインの開発とテストのためのプラグインの設定方法について説明します。 WindowsでEclipseを使用する環境を準備するには、バッチファイルを作成してEclipseを起動する必要があります。

そのバッチファイルを作成するには、次の手順を実行します。

  •  :file: qgis_core.dll`が常駐するフォルダを検索します。通常、これは :file: C:\ OSGeo4W \apps\ QGIS \ bin`ですが、自身のQGISアプリケーションをコンパイルした場合、これは :file:`output/bin/ RelWithDebInfo`中のビルトフォルダの中にあります

  • :file:`eclipse.exe`を実行可能にします。

  • QGISプラグインを開発するとき、以下のスクリプトを作成して、 eclipseのスタート時にこれを使ってください。

call "C:\OSGeo4W\bin\o4w_env.bat"
set PATH=%PATH%;C:\path\to\your\qgis_core.dll\parent\folder
C:\path\to\your\eclipse.exe

Eclipse と PyDevを利用したデバッグ

インストール

Eclipseを使用するため、あなたが以下をインストールしたことを確認してください

QGISの準備

QGIS自体で行われるいくつかの準備があります。** ** **リモートデバッグと**プラグインのリロード機能:二つのプラグインが注目されています。

  • menuselection: に行くプラグイン - >管理やプラグインをインストールします...

  • *リモートデバッグ*を検索するには、(現時点では、それはまだ実験的ですので、下の実験的なプラグインを有効:guilabel: `それが表示されない場合はOptions`タブ)。それをインストールしてください。

  • Search for Plugin reloader and install it as well. This will let you reload a plugin instead of having to close and restart QGIS to have the plugin reloaded.

Eclipseのセットアップ

Eclipseで、新しいプロジェクトを作成します。*一般的なプロジェクト*を選択しておいて本当のソースを後でリンクできるので、このプロジェクトをどこに配置するかは実際は問題になりません。

../../_images/eclipsenewproject.png

Eclipse プロジェクト

今、新しいプロジェクトを右クリックし、:menuselection: `新規 - > フォルダ`を選択します。

** [詳細] **をクリックし、guilabel:`別の場所に リンク(リンクフォルダ)`を選択します。すでにデバッグしたいソースがある場合はこれらを選択してください。そうでない場合は、すでに説明したようにフォルダを作成してください。

今度はビュー:guilabel: `プロジェクトExplorer`で、ソースツリーがポップアップし、コードで作業を開始できます。すでに利用可能な構文の強調表示や他のすべての強力なIDEツールが使用できます。

デバッガの設定

デバッガの作業を取得するには、Eclipseでデバッグパースペクティブに切り替えます(:menuselection: ウィンドウ - >パースペクティブを開く - >その他 - > DEBUG)。

menuselection: - >デバッグの開始Server` `PyDevはを今すぐ選択することにより、PyDevはデバッグサーバを起動します。

EclipseはQGISからデバッグサーバーへの接続を待っています。QGISがデバッグサーバーに接続すると、Pythonスクリプトを制御できます。それはまさに私たちが* Remote Debug *プラグインをインストールしたものです。だからまだ起動していなければQGISを起動し、バグのシンボルをクリックしてください。

今、ブレークポイントを設定でき、コードがそこに達すると実行が停止し、プラグインの現在の状態を検査できます。(ブレークポイントは下の画像の緑色の点で、ブレークポイントを設定したい行の左空白でダブルクリックすることで設定します)。

../../_images/breakpoint.png

ブレークポイント

今利用できる非常に興味深いものはデバッグコンソールです。先に進む前に、現在実行がブレークポイントで停止していることを確認してください。

( - > view`表示 `ウィンドウ::menuselection)コンソールビューを開きます。guilabel: `デバッグServer`コンソールは非常に興味深いものではありませんそれは表示されます。しかし、もっと面白いPyDevはデバッグコンソールに変更できますボタン** [開くコンソール] があります。 [コンソールを開く]**ボタンの隣にある矢印をクリックして、* PyDevコンソール*を選択してください。ウィンドウが表示され、どのコンソールを起動したいかを尋ねてきます。* PyDevデバッグコンソール*を選択してください。グレーアウトしており、デバッガを起動して有効なフレームを選択するよう言われた場合は、リモートデバッガが付属され現在ブレークポイント上にいることを確かめてください 説明します。

../../_images/console-buttons.png

PyDev デバッグコンソール

今はもうインタラクティブコンソールが使用できるので、現在のコンテキスト内から任意のコマンドをテストできます。変数を操作するとか、API呼び出しするとか、何でも好きにできます。

ちょっと面倒なのですが、コマンドを入力するたびコンソールはDebug Serverに戻ります。この動作を停止するには、Debug Serverページで* Pin Console *ボタンをクリックしますが、少なくとも現在のデバッグセッションではこの決定は記憶されます。

eclipseでのAPIの理解

非常に便利な機能は、Eclipseが実際にQGISのAPIについてわかっているようにすることです。これにより、タイプミスがないかコードを確認できます。これだけでなく、EclipseでのインポートからAPI呼び出しへ自動入力する支援を可能にします。

これを行うため、EclipseではQGISライブラリファイルを解析し、そこにすべての情報を取得します。しなければならないことは、どこのライブラリを検索するかをEclipseに伝えることだけです。

クリック:menuselection: `ウィンドウ - >設定 - > PyDevは - >通訳 - > Python`を。

ウィンドウの上部と下部にいくつかのタブで設定済みのPythonインタプリタ(現在QGISのためのpython2.7)が表示されます。私たちにとって興味深いタブは、* ライブラリー*および *強制ビルトイン*です。

../../_images/interpreter-libraries.png

PyDev デバッグコンソール

まずライブラリ]タブを開きます。新規フォルダを追加し、QGISのインストールのPythonのフォルダを選択します。このフォルダがどこにあるか(それはプラグインフォルダではありません)オープンQGISがわからない場合は、Pythonのコンソールを起動し、簡単に入力します `` qgis``を入力してを押します。それは使用するモジュールとそのパスをQGISたことが表示されます。末尾の `` / QGISこのパスから/ __のinit __。pyc``をストリップと、あなたが探しているパスを持っています。

プラグインフォルダもここに追加する必要があります(Linuxの場合:file: 〜/ .qgis2 / python / plugins)。

次に*強制組込関数*タブにジャンプし、*新規... *をクリックして `` qgis``と入力してください。これでEclipseがQGISのAPIを解析するようになります。おそらくEclipseがPyQt4のAPIもわかるようにしたいでしょう。そのためには強制組込関数としてPyQt4も追加します。それはおそらく、すでにライブラリタブに存在しなければなりません。

*OK*をクリックし、完了します。

ノート

QGIS APIが変更されるたびに(たとえば、QGISマスターをコンパイルしてSIPファイルを変更した場合)、このページに戻って*適用*をクリックする必要があります。これにより、Eclipseはすべてのライブラリを再び解析できます。

エクリプスの別の可能な設定のために このリンクをチェックし、QGIS Pythonのプラグインで動作するように、<http://linfiniti.com/2011/12/remote-debugging-qgis-python-plugins-with-pydev> _

Debugging using PDB

EclipseなどのIDEを使用しない場合は、次の手順に従ってPDBを使用してデバッグできます。

まず、デバッグしたい場所にこのコードを追加します

# Use pdb for debugging
import pdb
# These lines allow you to set a breakpoint in the app
pyqtRemoveInputHook()
pdb.set_trace()

それから、コマンドラインからQGISを実行します。

Linux上で実行する:

$ ./Qgis

Mac OS Xは実行:

$ /Applications/Qgis.app/Contents/MacOS/Qgis

アプリケーションがブレークポイントに到達したとき、コンソールで入力できます!

TODO:

テスト情報の追加