MacでPythonの機械学習環境構築(2014年5月版)
この記事は古くなっています。
最新版の記事はこちらになります。
MacでPythonの機械学習環境構築(2015年2月版) - old school magic
概要
MacでPythonの管理と環境構築の備忘録です。
色々試してみて今の形に落ち着いたのですが、コロコロ変わりそうな気もするので日付をつけときます。
簡単にまとめるとこんな感じです。
前回はこんな感じだったのでだいぶ変わりました。
前準備
バージョン管理システムはhomebrewを用います。
ソフトウェアをまとめて管理(インストールやアップデート、削除等)するためのソフトです。
homebrewについては次の解説が参考になります。
- 公式
Homebrew — The missing package manager for OS X
- インストール、使い方
MacOSX - パッケージ管理システム Homebrew - Qiita
# homebrewのインストール ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"
Pythonの導入・管理
pyenvを用います。
yyuu/pyenv · GitHub
Pythonをバージョンごとに個別に管理するためのソフトです。
Pythonに関して言えば、一つのPythonをアップデートして使うより、バージョンごとにPythonの環境を構築したほうが良いと思います。*1
# pyenv のインストール brew install pyenv
pyenvを使う前に環境変数を設定してあげる必要があります。
.bash_profileに次のコマンドを書き足します。
# 環境変数の設定 export PATH="$HOME/.pyenv/shims:$PATH"
pyenvは様々なバージョンのPython(やサードパーティ)に対応しています。
次のコマンドでインストールできるPythonの種類を確認できます。
# pyenvでインストールできるPythonの確認 pyenv install -l
例えば、(2014年5月時点で)最新版のPython 3.4.0は、
pyenv install 3.4.0
でインストールできます。
デフォルトではユーザディレクトリの.pyenv以下にインストールされます。
機械学習ライブラリの構築
機械学習ライブラリとして、Anacondaを使います。
Anaconda Scientific Python Distribution
- numpy
- scipy
- matplotlib
- scikit-learn
あたりが定番なのですが、Anacondaはここらへんをひとまとめにしてインストールしてくれます。個別にインストールするよりすごい楽です。iPythonとか便利ツールもインストールしてくれます。
Anacondaはpyenvでインストールできます。
# Anacondaのインストール # 数百Mあるので結構時間かかります。10分くらい? # バージョンは適宜最新版に書き換えてください pyenv install anaconda-1.9.1
インストールしたらおまじない(再ハッシュ)しましょう。
pyenv rehash
pyenvでは使用するバージョンのPythonを選択できます。
先程インストールしたAnacondaに設定する場合は、
# 使用するPythonの選択 pyenv local anaconda-1.9.1 pyenv global anaconda-1.9.1
といった感じです。
ローカル環境とグローバル環境で使い分けられます。が、とりあえずは両方同じPythonに設定しておきます。
その他、pyenvでよく使うコマンドは
# 現在使ってるPythonの確認 pyenv version # インストールされてるPythonの確認 pyenv versions # Pythonのアンインストール pyenv uninstall
あたりです。詳しくはここに。
pyenv/COMMANDS.md at master · yyuu/pyenv · GitHub
AnacondaでインストールされるPythonは2系です。
3系を使いたい場合はここから一手間入ります。
# Anaconda自体のアップデート conda update conda # Python3なAnacondaのインストール conda create -n py33 python=3.3 anaconda # 現在のターミナルをPython3+Anacondaに設定 source ~/anaconda/bin/activate py33
py33というのは環境名というもので、好きな名前を付けても大丈夫です。
なお、このままだとAnaconda+Python3を使用したい時、毎回
source ~/anaconda/bin/activate py33
とコマンドを打たなければいけません。
解決策ですが、私はiPythonを使う派なので、こんな感じでエイリアスしました。*2
# ipython3 で Python3+Anaconda+iPythonを起動できるように設定 # .bash_profileに書き加えてあげてください alias ipython3="source ~/.pyenv/versions/anaconda-1.9.1/bin/activate py33; ipython"
参考
Python 3 support in Anaconda
AnacondaでPython3.3 - Qiita
これでPython3+機械学習環境が整いました。
余談
開発環境はSublime Text 3 + iPython (+ iTerm2)を使用してます。
*1:Pythonをアップデートするとpipでインストールしたソフトがまるまる死んで面倒なので。
*2:直接パスを通すという手もありますが、それだとpyenvで切り替えられなくなるので...