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


設定環境

Mac : OS X Yosemite(10.10.1)

インストール手順

Homebrewのインストール

Macでのとても便利なパッケージ管理ツールです
Homebrew

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

pyenvのインストール

Pythonのバージョン管理ツールです
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

一覧の中で、最新の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のバージョンを確認すると、

とPython3系になっています

次にpython2.7の環境をactivateした後にPythonのバージョンを確認すると、

きちんとPython2系になっています

OpenCVのインストール(Python2系)

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

conda install opencv

として、ファイル内、もしくは、ipython上で

import cv2

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

便利なプラグイン

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月版)

How to install 2 Anacondas (Python 2.7 and 3.4) on Mac OS 10.9

Python数値計算環境Anacondaの導入

追記

usr/localの中に入れる場合

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