#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(おもしろかった[1],そうでもない[0],わかりずらい[0]) #vote(おもしろかった[2],そうでもない[0],わかりずらい[0]) 皆様のご意見、ご希望をお待ちしております。 #comment_kcaptcha