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 とか使えば普通に入ってくれるのかもしれない)

LAPACK

 make.inc

に -fPIC オプションを追加するように記述.

 OPTS := $(OPTS) -fPIC
 NOOPT := $(NOOPT) -fPIC

って感じ?

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 のテスト.