読者です 読者をやめる 読者になる 読者になる

yumを使わずにCentOS5.5にnumpyとscipyをインストールする

yum使うとバージョンが古いです。

  yumで入るバージョン 最新バージョン(11/03/24時点)
numpy 1.2.0 1.5.1
scipy 0.6.0 0.9.0

僕が入れたのは研究室のCentOS5.5(64bit)です。また、

Ubuntu の apt-get でインストールされるバージョンは blas/atlas/lapack を使ってくれないようで、速くしたいのであればいずれにせよ自分でビルドしたほうがいい。
Python でグラフ・(疎)行列計算するためのライブラリを紹介するよ - 観月橋日記 (続生駒日記)

そうなので、そういった方も対象ですが、全く同じでいけるかは分かりません。

(任意)Python2.6を入れる

参考:CentOS 5.5 に Python 2.6.6 をインストール - Debian GNU/Linux 3.1 on PowerMac G4
CentOS5.5に初期インストールされているのが2.4なので2.6に上げました。

gfortranを入れる

scipyをビルドするのにgfortranが必要です

$ yum install gcc-gfortran

BLAS, LAPACKのインストール

参考:Installing SciPy/BuildingGeneral -
64bitの場合だけを抜粋する

BLAS
$ mkdir -p ~/src/
$ cd ~/src/
$ wget http://www.netlib.org/blas/blas.tgz
$ tar xzf blas.tgz
$ cd BLAS
$ gfortran -O3 -std=legacy -m64 -fno-second-underscore -fPIC -c *.f    # with gfortran
$ ar r libfblas.a *.o
$ ranlib libfblas.a
$ rm -rf *.o
$ export BLAS=~/src/BLAS/libfblas.a
LAPACK
$ mkdir -p ~/src
$ wget http://www.netlib.org/lapack/lapack.tgz
$ tar xzf lapack.tgz
$ # 解凍されたディレクトリを LAPACK という名前に変更する
$ cd ~/src/LAPACK
$ cp INSTALL/make.inc.gfortran make.inc          # on Linux with lapack-3.2.1 or newer

INSTALL/make.incを編集する。PLAT, OPTS, NOOPTの値を以下のように変更

PLAT = _LINUX
OPTS = -O2 -m64 -fPIC
NOOPT = -m64 -fPIC
$ make lapacklib
$ make clean
$ cp lapack_LINUX.a libflapack.a
$ export LAPACK=~/src/LAPACK/libflapack.a
(余談)UNIX環境に詳しくない方へ

exportというのはシステムに環境変数を追加するコマンドで、scipyをmake, make installするときにBLASLAPACKという環境変数でそれぞれのファイルが指定されている必要があります。なので、最後にインストールするためrootにユーザを切り替える場合は改めて両方を設定しなければなりません。その際は、~/src/LAPACK/libflapack.aの用に相対パスで指定することはできません。上記の操作を行ったユーザ名がhogehogeだったとしたら

$ export BLAS=/home/hogehoge/src/BLAS/libfblas.a
$ export LAPACK=/home/hogehoge/src/LAPACK/libflapack.a

のように指定してください。

numpyのインストール

$ # 1.5.1の場合
$ wget http://sourceforge.net/projects/numpy/files/NumPy/1.5.1/numpy-1.5.1.tar.gz/download
$ tar xzvf numpy-1.5.1.tar.gz
$ cd numpy-1.5.1
$ python setup.py build
$ sudo python setup.py install

scipyのインストール

$ # 0.9.0の場合
$ wget http://sourceforge.net/projects/scipy/files/scipy/0.9.0/scipy-0.9.0.tar.gz/download
$ tar xzvf scipy-0.9.0.tar.gz
$ cd scipy-0.9.0
$ python setup.py build
$ sudo python setup.py install

確認

numpyとscipyには、インストールが正常に完了しているかを確認するテストが含まれています。テストを実施するにはnoseというpythonモジュールが必要になります。noseのインストール方法はググって下さい。

>>> import numpy
>>> numpy.test() # numpyのテストの実行
>>> import scipy
>>> scipy.test() # scipyのテストの実行

これで特に大げさなことを言われなければインストールは成功です。