PyROOTを起動した時のエラー対処
ROOTをpython likeに使うためのモジュールPyROOT
これを起動する時にエラーが出たので解決法の覚え書き。
問題と原因
Python上でROOTを使うためにはpyROOTっていうモジュールをインポートするのですが 自分の環境でROOTをインポートしようとすると
Fatal Python error: PyThreadState_Get: no current thread
ってエラーを吐いてPythonが強制終了されました。
原因を探ってみると、どうやらROOTに付属しているpyROOTは OS X付属のpythonにあわせてビルドされているので OS X付属でないversion のpythonをデフォルトで使っていたため、ライブラリを読み込むときに不具合が発生していた模様。
解決法
pythonの起動時に
/usr/bin/python
と指定することで、OS X付属のpythonを使う。
ROOTをビルドし直す方法もあるみたいだけど、めんどくさいからとりあえずこれで。
しかし、pyROOTはpython2.7でしか使えないのが辛い。Python3に対応してくれーー