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

オモンパカリスト

深層学習、計算論的神経科学に興味あります

CentOS6.7にtheanoをインストールして四苦八苦した話

やりたかったこと

CentOS6.7でpyenvでversion管理をしている環境で
python 2.7.9に数値計算用ライブラリtheanoをインストールしたい

インストールするもimportでエラー

pyenvが原因かわからないがimport theanoでエラーを吐いて四苦八苦

xception: Compilation failed (return status=1): /usr/bin/ld: /home/kzkntt/.pyenv/versions/2.7.9/lib/libpython2.7.a(abstract.o): relocation R_X86_64_32 against `.rodata.str1.8' can not be used when making a shared object; recompile with -fPIC. /home/kzkntt/.pyenv/versions/2.7.9/lib/libpython2.7.a: could not read symbols: Bad value. collect2: ld はステータス 1 で終了しました.

解決

結局pyenvではなくシステムのpythonを2.7.10にバージョンあげて、
そこにpip, numpy, scipy, nose, 最後にtheanoの最新を入れた。

pythonソースコードからインストール

CentOS 6.4にPython 2.7.5をインストール(altinstall)し、さらに、デフォルトで2.6.6ではなく2.7.5が起動するようにする - コンピュータ/ソフトウェア関連Tips

システムpythonのバージョンをあげる方法はここを参考にした。
この記事は2.7.5にあげてるが僕は2.7.10にあげた。
sudo visudoの変更は大事。sudo pythonでも目的のversionを起動できるようにする。

pipをインストール

$ curl -kL https://bootstrap.pypa.io/get-pip.py | sudo python

sudoつけないと僕の環境ではエラーを吐いた。
よって今後pipコマンドもsudo pipとする必要がある。

numpy, scipy, noseをインストール

最新版で良い。noseものちに必要になる。

$ sudo pip install numpy
$ sudo pip install scipy
$ sudo pip install nose
$ sudo pip install git+https://github.com/wolever/nose-parameterized

Theanoは最新版をインストール

$ sudo pip install git+git://github.com/Theano/Theano.git

結論

Theano入れるだけでくそめんどい。。