稼働中

フリーソフト(10)Thonny Python IDEの使い方④ birdeye

Python デバッガー birdseye

Thonnyは初心者向けのPython IDE(統合開発環境 Integrated Development Environment)です。前回に説明したデバッグ以外にThonnyでbirdseyeというPythonデバッガーが使用できるようです。birdeyeは、式の値を記録するPythonデバッガーらしいです。私は素人なので雰囲気だけ記載します。

birdseye

Help表示

Thonnyのメニューから「Run>Debug current script(birdseye)」を選択すると以下が表示されました。birdseyeを利用するのは別途インストールが必要です。

インストール

「はい」をクリックするとbirdseyeの概要がHelp欄に表示されます。ThonnyのHelp欄にある「birdseye」のリンクと同じです。birdseyeの概要らしきものが表示されます。詳しくは「https://birdseye.readthedocs.io/」を参照してください。

Help

パッケージをインストール

Thonnyをインストールしたデフォルト状態ではbirdseyeはインストールされてません。birdseyeを使うには別途パッケージをインストールする必要があります。
Thonnyなら簡単にインストールできます。メニューから「Tools>Manage package」を選択します。
パッケージ名 birdseyeを入力、検索してインストールします。インストールできたら「close」で閉じます。

Manage package

使ってみる

以下の「foo.py」で試してみます。

foo.py

birdseyeの使い方を「https://birdseye.readthedocs.io/en/latest/quickstart.html」でみると、以下のように表記されていました。
quickstart

上記を参照して、デバッグするために「foo.py」を以下のようにし、ファイル名を「foo_deco.py」にしました。

foo_deco.py

このままでは動きません。ターミナルで簡易サーバーらしきものを立ち上げる必要があります。素人なのでよくわかりません。とにかくやってみます。
ターミナルを立ち上げます。「Tools>Open system shell」からでもよいと思います。
※Thonnyの表記がterminalのため本来コマンドプロンプトと記すところを「ターミナル」で記載しています。

ターミナルを開く

以下の例ではプロンプトがC:\になっています。「birdseye」を実行します。
C:\>birdseye

birdseye実行

以下のようになりました。ローカルサーバーが立ち上がったようです。

ローカルサーバーが稼働

この状態でThonnyのメニューで「Run」を選択します。とりあえず動いたようです。「http://127.0.0.1:7777/」を開いてみます。

ThonnyでRun

「http://127.0.0.1:7777/」を開くとデバッグデータができたようです。赤枠のアイコンをクリックしてみます。

ローカルbirdseye

何かデバッグのデータが表示されました。

デバッグデータ表示

囲み部をクリックすると青枠で囲まれます。下段に情報が表示されています。カーソルを当てると最下段に情報が表示されるようです。

birdseyeデバッグ操作

「a」の青枠をもう一度クリックすると非選択になります。「e=」の外枠だけ選択することもできます。動作状態を保存しているので個々データを選択して確認できるようです。初めて使っているので、現状はこれくらいしか分かりません。

青枠クリック

ちなみにターミナルは開いたままです。ブラウザとデータをやり取りしているようです。素人なのでよくわかりません。Birdseyeでデバック終了時にはターミナルもCtrl+Cで終了します。

ターミナルの表示状態

ブラウザ上部のbirdseyeのロゴをクリックすると「http://127.0.0.1:7777/」に戻ります。

birdseyeのロゴ

Thonnyの機能を使う

@eyeの無い普通のスクリプト「foo.py」に対して、Thonnyからbirdseyeを使ってみます。同じように先ずターミナルからbirdseyeを起動させ簡易serverなるものを立ち上げます。

ターミナルで簡易server

メニューバーから「Run>Debug current script(birdseye)」を選択します。

Thonnyからbirdseye

この場合、直接デバッグの画面が開きました。

デバッグ画面

ブラウザのアドレスバーにhttp://127.0.0.1:7777/(http://localhost:7777/)を入力すれば、birdseyeのメイン画面が表示されます。

birdseyeのメイン画面が表示

Thonnyから「Run>Debug current script(birdseye)」を選択すると、現在、開いているスクリプト(ここの例では「foo.py」)を直接デバッグできます。birdseyeのインポート文、@eyeデコレーターも書込みしなくても良いので簡単で便利だと思います。

ちなみに、birdseyeのインポート文、@eyeデコレーターを書き込んだ「foo_dec.py」をThonnyからbirdseyeを選択すると、先と同じようにデバッグ画面が直接開きます。
しかし、このままではデバッグできそうに無いです。赤枠の矢印をクリックします。

foo_dec.pyの場合

関数の中に入ってデバッグができるようです。
実質、Thonnyでスクリプトを実行した一番最初の画面と同じになりました。

@の中に入ってデバッグ

birdseyeのデバッグデータ

birdseyeのローカルホームを開いてみます。先の「foo.py」「foo_deco.py」のデバッグデータが残っています。
「foo.py」赤枠の「▶」をクリックしてみます。

打バッグデータを見る

デバッグデータが開きました。ここから再確認などができるようです。

デバッグ再開

「foo.py」赤枠横の「Executions of module」クリックしてみます。デバッグデータが2つ保存されていました。
赤枠の「▶」では最新データが開くようです。

デバッグデータ

デバッグデータの消去

デバッグするたびにデータが増えて行くようです。消す方法を調べてみました。ターミナルで以下を実行します。


python -m birdseye.clear_db

一応、消えたようです。

データベースの削除

birdseyeのローカルホームを確認します。空の状態になったようです。初期画面の状態になりました。

birdseyeホーム

残念ながらデバッグデータを個別に消去する方法は分かりませんでした。私のような素人レベルではこれくらいが限界です。

まとめ

Thonnyからbirdseyeでデバッグする場合、birdseyeのインポート文、@eyeデコレーターが省けます。そのため普段のスクリプトをそのままbirdseyeでデバッグできるので簡単です。
またスクリプトのデバッグデータを保存しているので見たいところを選択的、分散して個別に確認できるようです。簡易サーバーを立ち上げる手間はありますが便利な気がします。
私のような素人レベルでは長いスクリプトを作ることもないので使わないと思いますが・・。

追記

簡易サーバを立ち上げるとWarningが表示されていました。少し気になるので調べてみました。

簡易サーバーの警告

ターミナル(コマンドプロンプト)で以下を実行します。


set FLASK_ENV=development

一応、WARNINGは消えました。たぶんこの状態で使った方が良いのだろうと思います。
素人なので詳細はよくわかりません。

FLASK_ENV

追記は以上です。