ITO-A 上の Miniconda Python で Segmentation fault
スパコン ITO-A に Miniconda (Anaconda) をインストールし,仮想環境を構築後,Pythonスクリプトを実行すると,Segmentation fault
となる不具合が生じました.解決方法が分かりましたので,まとめておきます.
Minicondaのインストール時の注意
問題はベンダーが用意したPythonとの競合でした.インストール前に ~/.bashrc
の最後の方に
export PYTHONPATH=
を追記し,PYTHONPATHの設定を解除しておく必要がありました.ログインしなおしてから,通常通り Miniconda をインストールすることで解決しました.具体的な方法は こちら にまとめてあります.
Segmentation fault の発生状況
以前は問題なく動いていた環境でしたが,数ヶ月ぶりに作業をしようとしたところ,この問題に遭遇しました.Python パッケージのアップデートを行ったので,それが原因かもしれませんし,ベンダー側のアップデート等で環境が変化した可能性もありますが,原因は不明でした.
そこでインストールしたMinicondaをアンインストールし,再度インストールした後,仮想環境を作成し,パッケージのインストールをやりなおしました.インストール段階では不具合は見られませんでしたが,Python スクリプトを動かすとやはり Segmentation fault
となりました.
この仮想環境の Python のバージョンを調べたところ,base 環境とは異なり,ベンダーの Intel 版 Python になっていました.不思議なのは base 環境は Miniconda の Python でした.module load
で Intel Fortran をロードしていましたので,その際にベンダーの Intel 版 Python がデフォルトになってしまうものと推察し,これを アンロードしたところ,今度はベンダーデフォルトの Python 2.7 になりました.echo PYTHONPATH
を見ると,確かにベンダー環境を指していました.
不適切な PYTHONPATH
が残ってしまっていることが問題と思われたので,上記の方法を試したところ,解決しました.