2007/10/17

PythonでROOTを使う

ROOTのコマンドはC++だし、マクロもC++で書くのだが、そういったものをPythonで書くことが可能だ。
PyROOTというもののようだが、何をもってPyROOTというのかは不明。
設定はここを参考にした。
やってみた環境はFC5+Python 2.4+ROOT 5.12。

まず単純に

export PYTHONPATH=$PYTHONPATH:$LD_LIBRARY_PATH

という1行を.bashrcに追加してみた。
ところがlibCore.soというのがない、というエラーが出てうまく行かない。
importの途中でエラーが出る。

この問題はすでにROOTのバグとして、ここに報告されている。
ついでに解決法も示されている。

libCore.soはPythonのモジュールでないので、sysでは読み込まない。
したがって、LD_LIBRARY_PATHに$ROOTSYS/libを加えればいい。
ちなみに$ROOTSYS/libにはROOT.pycがある。
具体的には以下の2行を.bashrcに追加すればいい。

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ROOTSYS/lib
export PYTHONPATH=$PYTHONPATH:$LD_LIBRARY_PATH

なおWindowsのROOTとPythonは.bashrcを直しても効果がない。
importでエラーが出てしまう。
libPyROOTを読み込めない。
上と同じように直してみたが、さっぱりうまく行かない。
こちらはROOT.pyを変えればうまく行くようだ。

0 件のコメント: