PyROOTを起動した時のエラー対処

ROOTをpython likeに使うためのモジュールPyROOT
これを起動する時にエラーが出たので解決法の覚え書き。


問題と原因

Python上でROOTを使うためにはpyROOTっていうモジュールをインポートするのですが 自分の環境でROOTをインポートしようとすると

Fatal Python error: PyThreadState_Get: no current thread

ってエラーを吐いてPythonが強制終了されました。

f:id:Tmegane:20190408154757p:plain

原因を探ってみると、どうやらROOTに付属しているpyROOTは OS X付属のpythonにあわせてビルドされているので OS X付属でないversion のpythonをデフォルトで使っていたため、ライブラリを読み込むときに不具合が発生していた模様。

解決法

pythonの起動時に /usr/bin/python と指定することで、OS X付属のpythonを使う。

ROOTをビルドし直す方法もあるみたいだけど、めんどくさいからとりあえずこれで。

しかし、pyROOTはpython2.7でしか使えないのが辛い。Python3に対応してくれーー