機械学習フレームワークの1つである Chainer 1.5 を OS X 10.10 や 10.11 にインストールした。
そのプロセスメモ。

Chainerは Python のパッケージになっている。
まずは Python のバージョンを今の時点で最新の Python 2.7.11 にあげる。
Python のバージョンの管理は pyenv を使うのが便利なので、pyenv がなければこの際 pyenv もインストールする。
Chainer は Python package を管理するコマンド pip を使ってインストールできるため、pip が入ってなければまずはそれからインストールする。


☆ pyenv のインストール

$git clone https://github.com/yyuu/pyenv.git ~/.pyenv

そして、.zshrc や .bash_profile に

export PYENV_ROOT="${HOME}/.pyenv"
export PATH=${PYENV_ROOT}/bin:$PATH
eval "$(pyenv init -)"

と記述を追加する。そして、そのままのシェルで作業を続ける場合は

$source ~/.zshrc

これで

$pyenv versions

などが実行できる。


☆ Python 2.7.11 のインストール

$pyenv install 2.7.11

とすれば、依存するパッケージもインストールしながら、Python のインストールが実行される。
でも、依存するライブラリのコンパイルでつまったので、Python のアップデートは諦めてシステムに入っている 2.7.10 で進める事にした。

もし 2.7.11 がうまくインストールされたら

$pyenv global 2.7.11

で、2.7.11 を使うようにしておく。


☆ pip のインストール

$sudo easy_install pip

でインストールできる。
easy_install は setuptools (https://pypi.python.org/pypi/setuptools) をインストールすることでインストールされる(はず)。

☆ h5py をインストール
hdf5 serializers を使えるように h5py が必要。

$sudo -H pip install h5py


☆ Chainer のインストール

$sudo -H pip install chainer

とする。
numpy のバージョンが低すぎるとエラーがでたなら

$sudo easy_install --upgrade numpy

これのコンパイル時に xcodebuild -license をまだしてない、というエラーで止まったので、

$sudo xcodebuild -license

として、xocde のライセンスに agree しておく。そして、再度 easy_install で numpy アップデートの実行。
再び

$sudo -H pip install chainer

OS X 10.10, 10.9 だとこれでOK。無事にインストールが完了する。
ところが OS X 10.11 の場合ここで
copying LICENSE.rst -> /System/Library/Frameworks/Python.framework/Versions/2.7/
error: [Errno 1] Operation not permitted: '/System/Library/Frameworks/Python.framework/Versions/2.7/LICENSE.rst'
というエラーがでる。

OS X 10.11 から新しいセキュリティシステムのため /System 以下に root 権限でもアクセスできなくなっている。

やはり python 2.7.11 を pyenv でインストールするしかなさそうだ。
pyenv で python をインストールした場合は、後から追加する python package は ~/.pyenv 下にインストールされるため、/System/.. 以下にアクセする必要がなくなると思われる。







やじるし 機械学習Chainer関連メモの目次