2011/06/09からのアクセス回数 4457
sage/PRML- ニューラルネットワークのスケール共役勾配法 のように長いスクリプトを作成するようになると、 どうしてもデバッガをほしいと思うことがあります。
できれば使い慣れた環境でデバッグしたいと思うのプログラマー の常です。
ここでは、pythonで紹介したPydevを使ってデバッグする方法 をお教えします(本邦初公開!)。
最初に、EclipseのPreferencesからPydev->Interpreter-Pythonを選択します。 以下のような画面になりますので、
これでPydevの設定は完了です。
Pydevでsageのスクリプトをデバッグするには、環境変数を整えた後、 Eclipseを起動する必要があります。
そのため、以下のようなスクリプトをsageのディレクトリに作成します。
MyStartEclipseForSage.sh
#!/bin/bash export SAGE_ROOT=/Users/take/local/sage . $SAGE_ROOT/local/bin/sage-env 1>/dev/null 2>/dev/null /Users/take/local/eclipse3.4/Eclipse.app/Contents/MacOS/eclipse 1>/dev/null 2>/dev/null
ここで、
とします。
デバッグするスクリプトは最初に、おまじないのfrom sage.all import *をつけます。 以下にsage/PRML-線形回帰の最初の行をテスト用に使用します。
from sage.all import * data = matrix([ [0.000000, 0.349486], [0.111111, 0.830839], [0.222222, 1.007332], [0.333333, 0.971507], [0.444444, 0.133066], [0.555556, 0.166823], [0.666667, -0.848307], [0.777778, -0.445686], [0.888889, -0.563567], [1.000000, 0.261502], ]); X = data.column(0) t = data.column(1) M = 3; var('x') sin_plt = plot(sin(2*pi*x),[x, 0, 1], rgbcolor='green'); data_plt = list_plot(zip(X, t)); data_plt (data_plt + sin_plt).show() print t
デバッグ方法は、普通のPydevのスクリプトと同じなのですが、 Pydevのデバッグ用設定で、Interpreterに先ほど追加したsage用のpythonを指定する必要 があります。
Eclipseでデバッグしている場合には、グラフはプレビューで別ウィンドウに表示されます。 ブレークポイント、ステップ実行、変数の参照はEclipseのデバッガと同じです。
これで、Sageでスクリプトを作成する障害はなくなりました。 どんどん挑戦してみてください。
皆様のご意見、ご希望をお待ちしております。