linuxBean14.04(8)GeanyでLibreOfficeのPythonマクロをデバッグする

前の関連記事:linuxBean14.04(7)GeanyでLibreOfficeのPythonマクロ編集


GeanyでもちょっとPythonマクロのデバッグをしたいときがあるかもしれませんので、デバッグ環境を作っておきます。デバッグにはpudbを使います。

Synapticパッケージマネージャでpudbをインストール


pudb 2015.2 : Python Package Indexでpipを使ったインストール方法が書いてあるのでpython-pipをインストールしてsudo pip install pudbとしてみるとインストールされたかにみえましたがpudbを起動できませんでした。

やむを得ずSynapticパッケージマネージャでpudbを検索してみるとpython3-pudbというパッケージが見つかりました。

現在のpudbは2015.2が最新版ですが、Ubuntu14.04では2013.5版が最新版のようですのでこれをインストール指定にしました。



付属して2つのパッケージがインストールされます。

Terminalでpython3を起動して、import pudb; pu.dbとするとpudbが起動することが確認できます。

pq@pq-VirtualBox:~$ python3
Python 3.4.0 (default, Apr 11 2014, 13:05:18)
[GCC 4.8.2] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import pudb; pu.db


CUIツールですのですべてキーボードから操作します。

初回起動時は設定画面が開きます。

上下矢印キーで設定項目を移動しスペースキーで設定を変更します。

とりあえずShow line Numbersのみxをつけて有効にしておきました。

この設定画面はCtrl+pであとからでも呼び出せます。

設定が終わったら右矢印で<OK>に移動してEnterキーを押すと設定画面が閉じます。

qでpudbが終了します。

pudbは/usr/lib/python3/dist-packages以下にインストールされていました。

LibreOfficeのPythonマクロをGeanyからpudbでデバッグできるように設定する


linuxBean14.04(7)GeanyでLibreOfficeのPythonマクロ編集で作ったfor_geany.shをコピーしてfor_geany_pudb.shを作ります。
#!/bin/sh
PYTHONPATH=$1:/usr/lib/python3/dist-packages
export PYTHONPATH
/opt/libreoffice4.3/program/python -m pudb.run $2
for_geany_pudb.shはこのようにします。

PYTHONPATHにpudbへのパス/usr/lib/python3/dist-packagesを追加しています。

4行目で引数のPythonマクロをpudbで開いています。

今度はこのfor_geany_pudb.shを起動するメニューを作ります。

Geanyのメニューでビルド→ビルドコマンドを設定。


「コマンドを実行」の空きボタンをクリック。


メニュー項目の名前は「pudbでデバッグ」にしました。

%p/for_geany_pudb.sh "%p" "%d/%f"

コマンド欄にはfor_geany_pudb.shを呼びだすこのコマンドを入れました。

(2015.5.30追記。pyファイル以外のファイルも同じコマンドに変わってしまうためPythonコマンドにコマンドを入力することにしました。linuxBean14.04(26)Geanyのビルドコマンドの設定参照。)

test.pyをGeanyで開いた状態で、ビルド→pudbでデバッグ。


test.pyがちゃんとpudbに読み込まれています。

pudbをちょっと使ってみる


nキーで次の行が実行されていきます。

呼び出している関数の中に飛びたいときはsキーを使います。


print()の出力結果はpudbを実行している状態でみる方法はわかりませんでした。

下の「Command line」の枠に出力されるかと期待していましたが当てがはずれました。


例外がでたときはeでException Viewerが起動してその内容が表示されました。


Examineを選択するとPOST-MORTEM MODEになりました。

異常終了したあとでも操作できるモードのようです。

Quitするとpudbが閉じたあとのTerminalにprint()の結果が出力されていました。

参考にしたサイト


pudb 2015.2 : Python Package Index
ビジュアルなCUIのPythonデバッガpudb。

Python パッケージ管理技術まとめ (pip, setuptools, easy_install, etc)
Pythonのパッケージ管理ツールについて詳しくまとめてくれています。

次の関連記事:linuxBean14.04(9)node.jsとBracketsのインストール

PR

0 件のコメント:

コメントを投稿