2011/06/09からのアクセス回数 4577
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でスクリプトを作成する障害はなくなりました。 どんどん挑戦してみてください。
皆様のご意見、ご希望をお待ちしております。