MacでPython3系ベースの機械学習環境設定（Python2系との共存）

#設定環境
Mac : OS X Yosemite(10.10.1) 

#インストール手順

##Homebrewのインストール

Macでのとても便利なパッケージ管理ツールです
[Homebrew](http://brew.sh/)

```
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
```
##pyenvのインストール
Pythonのバージョン管理ツールです
[pyenv](https://github.com/yyuu/pyenv)

```
# pyenvのインストール
brew install pyenv
```

次にPATHの設定をします。
.zshrcや.bashrcに以下の設定を加えます。

```
# 環境変数の設定
export PATH="$PYENV_ROOT/bin:$PATH"
export PYENV_ROOT="$HOME/.pyenv"

eval "$(pyenv init -)"
```

fish shellを使っている場合は↑の最後の一行の代わりに以下の一行を追加する（`~/.config/fish/config.fish`）

```
# pyenv
status --is-interactive; and . (pyenv init -| psub)
```

##Anacondaのインストール

Anacondaとは

```
AnacondaはPythonの数値計算環境を構築するために様々なパッケージをまとめた無料のディストリビューションです。
インストールを行うことで、NumPy，SciPy，matplotlibはもちろん、
機械学習ライブラリscikit-learn等のパッケージをインストールできます。
```

以下のコマンドでインストール可能なPythonのバージョンが確認できます

```
# インストール可能なPythonの一覧を表示
pyenv install -l
```
![Screen Shot 2014-11-25 at 6.23.11 PM.png](https://qiita-image-store.s3.amazonaws.com/0/58141/0f3f983f-0fd0-64f8-48f5-e5ceb44974fa.png)

一覧の中で、最新のAnaconda(anaconda-3-2.1.0)を選んで、[2014/11/25時点]
以下のコマンドでAnacondaをインストールします。

AnacondaのデフォルトがPython3系になっています。

```
# Anacondaのインストール
pyenv install anaconda3-2.1.0
```

インストールが終わったら、以下のコマンドを打ちましょう

```
pyenv rehash
```

（念のため）ターミナルを再起動したあとに、

```
# 使用可能なPythonの一覧
pyenv versions
(出力)
* system
anaconda3-2.1.0 (set by /Users/yourname/.pyenv/version)
```
となったら、anacondaが正常にインストールされています。

次に、使用するPythonを設定します

```
# 使用するPythonの設定
pyenv global anaconda3-2.1.0
(出力)
/Users/yourname/.pyenv/versions/anaconda3-2.1.0/bin/python

# 現在のPythonのバージョン確認
pyenv version
(出力)
anaconda3-2.1.0 (set by /Users/yourname/.pyenv/version)

# pythonの参照元の確認
which python
(出力)
/Users/yourname/.pyenv/versions/anaconda3-2.1.0/bin/python
```
ひと通り設定が終わったら、

```
conda update conda
```
として、Anaconda自体のupdateをしましょう

これで、Python3系でのAnacondaのインストールは終わりです。

##Python2系でのAnacondaのインストール

```
conda create -n py27 python=2.7 anaconda
```
とすると、python2.7なAnacondaをpy27という名前（py27の部分は任意の名称）でインストールできます

この環境を使いたいときは、

```
source ~/.pyenv/versions/anaconda3-2.1.0/bin/activate py27
```
とすると利用できるようになります。

この長い一行を毎度打つのは面倒なので、ターミナルの設定ファイルに以下のように設定しておくと便利です。

```
alias py2='source ~/.pyenv/versions/anaconda3-2.1.0/bin/activate py27'
alias py3='source ~/.pyenv/versions/anaconda3-2.1.0/bin/deactivate'
```

##動作確認

通常のターミナルの状態でPythonのバージョンを確認すると、
![Screen Shot 2014-11-25 at 7.10.14 PM.png](https://qiita-image-store.s3.amazonaws.com/0/58141/85c3449d-107d-17f9-d4e9-7bd5b2402421.png)
とPython3系になっています

次にpython2.7の環境をactivateした後にPythonのバージョンを確認すると、
![Screen Shot 2014-11-25 at 7.12.50 PM.png](https://qiita-image-store.s3.amazonaws.com/0/58141/8cbf5e5a-0f17-6f71-5ba8-df91237e2dcc.png)
きちんとPython2系になっています

##OpenCVのインストール（Python2系）

python2系の環境にしたあとに、

```
conda install opencv
```
として、ファイル内、もしくは、ipython上で

```
import cv2
```
とするとPython2系でOpenCVを利用することができるようになります。

##便利なプラグイン

[yyuu/pyenv-pip-rehash](https://github.com/yyuu/pyenv-pip-rehash)

```
pyenv rehash
```
という謎のおまじないを自動化してくれます

```
# pyenv-pip-rehashのインストール
git clone https://github.com/yyuu/pyenv-pip-rehash.git ~/.pyenv/plugins/pyenv-pip-rehash
```

#参考
[MacでPythonの機械学習環境構築(2014年5月版)](http://breakbee.hatenablog.jp/entry/2014/05/12/115005)

[How to install 2 Anacondas (Python 2.7 and 3.4) on Mac OS 10.9](http://stackoverflow.com/questions/24405561/how-to-install-2-anacondas-python-2-7-and-3-4-on-mac-os-10-9)

[Python数値計算環境Anacondaの導入](http://morimori2008.web.fc2.com/contents/PCprograming/python/pythonAnaconda.html)

#追記

usr/localの中に入れる場合

```
# 環境変数の設定
export PYENV_ROOT="/usr/local/opt/pyenv"
# pyenvのコード補完
if which pyenv > /dev/null; then eval "$(pyenv init -)"; fi
```