2011年7月15日金曜日

web2py アプリケーションを Editra で開発する ① Editraプラグインの機能

今回は Editra を使った、web2py アプリケーション開発について考えていきたいと思います。

IDE(統合開発環境)を使用した web2pyアプリケーション開発

以前、 Eclipse を使って web2py アプリケーションを開発するための設定について説明した。
web2py を Eclipse で開発するための設定について① 手動でEclipseを設定
web2py を Eclipse で開発するための設定について② スクリプトでEclipseを設定
web2py を Eclipse で開発するための設定について③ Unresolved import対策

Eclipse/PyDevを使った web2pyアプリケーション開発は使いやすいところもあったが、私としては次の点に不満があった。

  • Eclipseに対して、アプリケーション毎に複雑な登録作業を行うことが必要。
  • Eclipseは動作が重い割に、開発作業の全てを完結できない。
  • Unresolved import対策 で意味がないコードを挿入するため、ソースが汚れる。
結局 Eclipse を使うのが面倒になり、Web2pyウェブベースIDE に戻ったりした。しかし Web2pyウェブベースIDE は、やっぱり使いにくいんだよね。最も使いにくいエディタだけ他に代替にするのも一案だが、もっと良い解決策はないのか?、Python で使用可能な IDE はかなりの数があるので全部試すのも大変だ。

参考: python.org - IntegratedDevelopmentEnvironments

web2py ウェブベースIDE を置き換えることは不可能なので、軽いエディタに web2py コードを開発する支援機能があればよいのかも。調べたところ・・・あった。それが Editra 及び プラグイン だ。

Editra による web2py アプリケーションの開発支援機能

Editra は Windows・Mac・Linux といったマルチプラットフォームで動く、Python製オープンソースのテキストエディタだ。非常にたくさんのプログラム言語に対応した、ハイライト表示機能などのコーディング支援機能を持っている。

エディタにしては起動は少し重いが、Eclipse に比べたら格段に軽快に動く。またIMEのインライン入力には対応していないため、日本語入力は若干弱い。

参考: editra.org


(各種プラグインを導入した Editra 画面)
Editra にはプラグインの導入が可能だ。数あるプラグインの中で、Python IDE を構成する次のプラグインがある。
  • PyStudio Plugin
  • Launch Plugin
  • PyShell Plugin
  • CodeBrowser Plugin
  • Projects Plugin
参考: editra.org - Setup as a Python IDE

これらのプラグインの機能の中で、web2py アプリケーション開発に有用と思われる機能を以下簡単に紹介してみる。
 

デバッグ - PyStudio

Editra上でデバッグが可能だ。この機能は Winpdb の一部を使うため、事前に Winpdb を導入しておく必要がある。(web2py でデバッグツールを利用する ②

以下簡単にデバッグ手順を紹介する。

  1. デバッグ対象のソース先頭に、Winpdb と同様に次のコードを挿入する。
    import rpdb2
    rpdb2.start_embedded_debugger('password')
    
    password には適当なパスワード文字列(英数字)を設定する。
  2. デバッグ予定のソースを含んだプログラムを実行する。
  3. Editraのメニューの  [表示] > [シェルフ] > [PyDebug]
    をクリックすると、シェルフに Pydebug ウィンドウが開く。Pydebug の Remote ボタンを押すと、Winpdb と同様にリモートデバッグがアタッチできるようになるので、パスワードを入力してデバッグプロセスをアタッチする。
  4. するとエディタ上で、デバッグ状況が表示される。

    ブレークポイントは行番号の横をクリックすることにより、設定・解除が可能だ。

    デバッグ関連では次の機能もある。

    PyVariable - 実行中の変数値を表示
    PyExpression - 指定した変数値を表示
    PyBreakPoint - ブレークポイントの管理
    PyStackThread - 実行中モジュールを表示

    これらの機能もシェルフメニューで表示する
    [表示] > [シェルフ] > [xxxxxxxxxx]



 
PyAnalysis - PyStudio

PyAnalysis はコーディングチェックを行い、結果をエディタ上に表示する。

Editra はコードのハイライトや括弧のチェック表示などの機能を持っているが、PyAnalysis はさらに詳細なコードのチェックを行う。

例えば、変数や関数・クラスなどの定義の有無、Python 文法規則のチェック、さらに PEP8 と呼ばれる Python 公式コーディング規則への順守チェックを行う。

実際には PyAnalysis モジュール下で Pylint が動くようになっている。

注意点としては、編集中のソースは一旦保存してから分析を行う必要がある。これは Pylint が、ディスク上のファイルに対してコード分析を行うためである。

また web2py のモジュールはソース上はインポートしていないため、全てエラーになってしまう。この問題は Pylint の設定を変更することによって対応可能だ。しかし結構難しい設定のため、次回記事で紹介したい。

簡単に使い方を説明する。

  1. Editraのメニューの  [表示] > [シェルフ] > [PyAnalysis] で PyAnalysis のウィンドウを開く。
  2. Analyze ボタンを押して分析を開始する。


 
コードブラウザ - CodeBrowser

コードブラウザは、ソースの構造を分析表示してくれる。


 
プロジェクト - Projects

プロジェクトは、設定したプロジェクト下のファイル構造を表示してくれる。web2py の場合、applications フォルダ下にアプリケーションが作成されるため、これ毎に設定してあげればよい。

同様のプラグインとして、File Browser がある。このプラグインは Windows のエクスプローラのように、フォルダを全て表示してしまう。このため開発する時は、プロジェクトプラグインの方が効率がよいだろう。



 

以上で簡単に、web2py 開発で役立ちそうなプラグインの機能を紹介してみました。Editra のインストールやプラグインの設定自体は難しくありません。特に説明がなくても導入可能だと思います。

ただ、PyAnalysis の web2py 向け設定はちょっと難しいです。これについては Editra導入説明と併せて、次回紹介 してみたいと思います。