ひよっこ。

I want to…

Pythonの勉強のためにTracのデバッグ環境を構築する

Posted by hikaruworld : 2009 9月 21

おそらく他人が読んでもわからないでしょう…

と、前置きしつつ。
Pythonの勉強をしたいなぁと常日頃思っていて、
何かいい例がないかなぁと思っていました。

よく考えれば日頃愛用しているtracがpython製だったのを思い出したので、
これを解析しながら勉強して見ようと思い立った次第です。

とりあえず、静的解析は難しいので動的解析をしようと思い、
pyDev上にtracのデバッグ環境を構築した際のメモになります。

前提条件

  • tracdで起動する→standalone.pyを直接起動することにしました
  • trac用に別のPythonをインストール
  • Subversionのインストールは不要

インストール構成は以下の通り。pythonを別にインストールしている。
なおインストール場所は/dev/以下とする。

.
|-- bin					--- スクリプト格納用(trac-adminなど)
|-- data				--- tracプロジェクト
|-- pyDev				--- IDEを利用
|-- python252			--- Python本体。この配下にTracがインストールされる
|   |-- bin
|   `-- lib
|       `-- python2.5
|           `-- site-packages
                `-- Trac-0.11.5-py2.5.egg
`-- workspace			--- pyDevの作業用スペース

tracのインストール

詳しい方法は省きますが、今回は必要最低限のモジュールだけでよいので、
easy_instlalで行い、tracと(その依存関係にある)Genshiをあわせてインストールします。
日本語版を適用するためtracをアンインストールして、trac-jaをインストールします。

その後、tracのsampleプロジェクトを作成します。

注意点

すっかり忘れていたんですが、MacでTrac環境を構築するとX-MAC-JAPANESEという
エンコードをPythonが参照できないLookupErrorが発生します。

基本的にはエラーが発生する箇所のエンコードの設定を修正すればよいんですが(対処療法です)、
この件を忘れていてはまりました。
以前この件ではまったときはtrac/util/datefmt.pyだったように記憶しているのですが、
今回は、trac-adminによるスクリプト実行時でconsole.pyでエラーが発生していました

pyDev上にプロジェクトを作成

個人的には、ここを忘れないようにメモしています。
なお、pyDevのインストールに関しては省略ということで。

環境設定

環境設定→PyDev→インタープリタPythonが/dev/python252/bin/pythonを向いていること。
向いていなければ新規追加する。

Tracプロジェクトの作成

  1. プロジェクト→PyDev
  2. プロジェクト名 — trac
  3. デフォルトのチェックを外す
  4. プロジェクト・コンテンツ — /dev/python252/lib/python2.5/site-package/Trac-0.11.5-py.2.5.egg
  5. 文法バージョン — 2.5
  6. インタープリタ — 上記環境設定で設定したインストールディレクトリ
  7. デフォルト:ソースディレクトリを… — チェックをはずす

[TODO Image]

スタンドアローン起動の設定

Tracは内部にスタンドアローン起動用のサーバを持っているのでそれを利用します。
Tracdを外部からたたく必要があるかと思ったら、いつの間に準備されていてびっくりしました。

  1. trac/util/webへ
  2. standalone.pyを右クリックして「デバッグ」→「python実行」
  3. こんな感じで怒られる。
    pydev debugger: warning: psyco not available for speedups (the debugger will still work correctly, but a bit slower)
    pydev debugger: starting
    Usage: standalone.py [options] [projenv] …

    standalone.py: error: either the –env-parent-dir option or at least one environment must be specified

  4. 右クリック→デバッグ構成を選択
  5. 先ほど実行したstandalone.pyが設定されているはずなので、こいつの設定を修正する
    • 引数(プログラムの引数) — -p 8080 /dev/data/sample
    • インタープリタ(インタープリター) — 環境設定で設定したPython
  6. 起動ログが出力される。
    pydev debugger: warning: psyco not available for speedups (the debugger will still work correctly, but a bit slower)
    pydev debugger: starting
    Server starting in PID 409.
    Serving on 0.0.0.0:8080 view at http://127.0.0.1:8080/

これでデバッグ可能に成ります。

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

 
%d人のブロガーが「いいね」をつけました。