SciPy
インストールに一日かかった...
駄目すぎる..
次にインストールする時があるかもしれないのでメモ.
参照すべきは公式サイト.
http://scipy.org/Installing_SciPy/Linux
背景
ATLAS/LAPACK がない状態で普通に NumPy/SciPy をインストールすると,
scipy.linalg を import した時に,
ImportError: scipy/linalg/fblas.so: undefined symbol: srotmg_
とか言われることがある.
(import 対象によっては普通に使えるように見えるので若干性質が悪い)
という訳で,ATLAS/LAPACK から自分でインストール.
(もしかしたら yum とか使えば普通に入ってくれるのかもしれない)
ATLAS
最近の ATLAS はいちいち ar をやらなくても
--with-netlib-lapack=lapack_XXX.a
ってやっとけば良いのか.便利だなあ.
(いや,実は昔のもそうだったのかもしれないが)
困った時には
-Fa alg
をとりあえず付けとけ.
so を作るには,lib ディレクトリで
make shared # 逐次版
もしくは
make ptshared # スレッド版
全体像は,
mkdir build; cd build ../configure --prefix=/usr/local/atlas -Fa alg -fPIC --with-netlib-lapack=/path/to/lapack/lapack_<XXXX>.a make && make ptshared && make install
とか.
ライブラリパスも適当に.
ここまでインストールが終わったら,
export ATLAS=/usr/local/atlas
とかやっておくと良いかもしれない.
NumPy
site.cfg
にて
[DEFAULT] library_dirs = /usr/local/lib, /usr/local/atlas/lib ... [lapack_opt] libraries = lapack, ptf77blas, ptcblas, atlas
とか記述.
で,後は普通に
python setup.py install
Fortran90 コンパイラがない,とかのエラーはとりあえず無視で.
SciPy
何も考えずに
python setup.py install
ここでエラーが出る場合,NumPy のインストールに失敗している可能性が高いと思われる.
Fortran 系のオプションや NumPy の site.cfg を弄ると解決するかもしれない.
多分,以上で終了.
最後に
python -c 'from scipy.linalg import inv'
とかやって import のテスト.