- 追加された行はこの色です。
- 削除された行はこの色です。
#freeze
[[FrontPage]]
#contents
2011/06/09からのアクセス回数 &counter;
** デバッガを使いたい [#c1ebbd77]
[[sage/PRML- ニューラルネットワークのスケール共役勾配法]]
のように長いスクリプトを作成するようになると、
どうしてもデバッガをほしいと思うことがあります。
できれば使い慣れた環境でデバッグしたいと思うのプログラマー
の常です。
** EclipseのPython用プラグインPydevを使う [#afab6cf4]
ここでは、[[python]]で紹介したPydevを使ってデバッグする方法
をお教えします(本邦初公開!)。
*** Python Interpretersの設定 [#kf3a1e72]
最初に、EclipseのPreferencesからPydev->Interpreter-Pythonを選択します。
以下のような画面になりますので、
&ref(Pydev_setting.png);
- Newボタンをクリックし、sage用のpythongの場所を指定します。
私の場合には、~/local/sage/local/bin/pythonをセットし、OKボタンを押す
これでPydevの設定は完了です。
*** Eclipse起動用のスクリプト [#n5987dd4]
Pydevでsageのスクリプトをデバッグするには、環境変数を整えた後、
Eclipseを起動する必要があります。
そのため、以下のようなスクリプトをsageのディレクトリに作成します。
MyStartEclipseForSage.sh
#pre{{
#!/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
}}
ここで、
- SAGE_ROOTにはsageをインストールしたディレクトリを指定
- 最後の行にeclipseの実行形式の場所を指定します。Eclipse.app以下はおきまりでContents/MacOS/eclipse
とします。
** デバッグ方法 [#of04667e]
*** デバッグ用スクリプトの修正 [#h004aed2]
デバッグするスクリプトは最初に、おまじないのfrom sage.all import *をつけます。
以下に[[sage/PRML-線形回帰]]の最初の行をテスト用に使用します。
#pre{{
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
}}
*** デバッグの設定 [#c79da563]
デバッグ方法は、普通のPydevのスクリプトと同じなのですが、
Pydevのデバッグ用設定で、Interpreterに先ほど追加したsage用のpythonを指定する必要
があります。
&ref(debug_config.png);
*** デバッグ時の画面 [#v2a27761]
Eclipseでデバッグしている場合には、グラフはプレビューで別ウィンドウに表示されます。
ブレークポイント、ステップ実行、変数の参照はEclipseのデバッガと同じです。
&ref(sage-debug.png);
これで、Sageでスクリプトを作成する障害はなくなりました。
どんどん挑戦してみてください。
** コメント [#qa17e449]
#vote(おもしろかった,そうでもない,わかりずらい)
#vote(おもしろかった[2],そうでもない[0],わかりずらい[0])
皆様のご意見、ご希望をお待ちしております。
#comment_kcaptcha