つばめの巣

飛び立ちたい

Mac OSX SierraでPython環境を整える (Python2系とPython3系の共存 + おまけでOpenCVの導入)

Mac OSX SierraにPython環境を構築したときの記録です。 今回は以下の順に入れていきます。

  1. Homebrew : Mac用のパッケージマネージャ。Pythonの使用の有無に関わらず入れておくと便利です。

  2. pyenv : 複数バージョンのpythonを管理するツール。今回はPython2系とPython3系を切り替えるときに使用します。

  3. anaconda : 複数のパッケージがひとまとめになっているPythonディストリビューション。これを入れるだけで基本的な科学技術計算は問題なくできます。パッケージをいろいろ入れるのがめんどくさいので、今回はanacondaを利用します。

Homebrewをインストール

ターミナルを起動したら、以下のコマンドを打ち込みます。それにより、Homebrewがインストールされます。


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

ちなみに、上のコマンドは、Homebrewの公式サイトのインストール欄

[http://brew.sh/index_ja.html:embed:cite]

に書いてあります。

pyenvをインストール

pyenvはPythonのバージョン管理を行なうコマンドラインツールで、複数のバージョンのPythonのインストールや切り替えを容易に行うことができます。ちなみにWindows環境では使えないらしいです。

先程Homebrewをインストールしたので、Homebrewでpyenvをインストールします。ターミナル上で以下のコマンドを打ち込むとpyenvが導入されます。

brew install pyenv

とっても簡単ですね。

その後、環境変数に以下を追加します。 例えばシェルにzshを使っている人は、~/.zshrcに、以下を追加します。bashを利用している人は、~/.bash_profileに追加しましょう。

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

追加したら、ターミナルを再起動します。その後、ターミナル上で

pyenv -v

と打ち込み、pyenvのバージョンが表示されたら問題なくインストールできています。

anacondaのインストール

anacondaはpyenvを利用すれば簡単にインストールすることができます。ちなみにanacondaの公式サイト

Download Anaconda Now! | Continuum

からでもインストールすることができますが、今回はpyenv経由でインストールします。

pyenv install -l

とすれば、pyenv経由でインストールできるPythonのバージョン一覧が表示されます。 anacondaに限定して表示させたい場合は、

pyenv install -l | grep anaconda

とすればOKです。

python3系のインストール

pyenv install anaconda3-x.x.x

python2系のインストール

pyenv install anaconda2-x.x.x

とすれば好きなPythonが導入できます。

インストールしたバージョンの確認

pyenvでインストールしたPythonのバージョンを確認したい場合は、

pyenv versions

と打ち込めば、インストールしたバージョンの一覧が下のように表示されます。

* system (set by /Users/yourname/.pyenv/version)
  anaconda2-4.2.0
  anaconda3-4.2.0

* は現在設定されているPythonのバージョンを指定しています。systemはOSに標準で入っているPythonです。 なので、単純にpyenv install ~ としただけでは所望のPythonをインストールすることができますが、使用することはできません。 Pythonのバージョンを変更するために使用するものが、pyenv global と pyenv localです。

pyenv global と pyenv local

pyenv global hogehogeまたは、pyenv local hugahugaでバージョンの切り替えができます。 globalとすると全体に、localにするとそのカレントディレクトリ以下にバージョンの切り替えが反映されます。 Pythonのバージョンを切り替えることがない場合は、globalで指定してしまうのが良いと思います。

自分の場合は、Python2とPython3を使い分けたいため、 /Python/Python3と/Python/Python2のディレクトリをそれぞれ作成し、それぞれのディレクトリについて、

/Python/Python3

pyenv local anacanda3-4.2.0

/Python/Python2

pyenv local anacanda2-4.2.0

と設定しています。 そうすることで、対象のディレクトリに移動すればそこのPythonのバージョンが自動で設定されるようにしています。 この部分はこの方法がベストなのかどうかは正直わかりません。他にいい方法を知っている方がいましたら教えてください。

(おまけ) OpenCVのインストール

anacondaでデフォルトで入っているパッケージ以外にもパッケージを追加したい要望は当然あります。 今回は画像処理・コンピュータビジョン関連のライブラリであるOpenCVを入れてみたいと思います。

OpenCV | OpenCV

Python3ではOpenCV 3.x系しかサポートしていません。なので、OpenCV2.xをどうしても使いたい場合は、Python2を必然的に使用するしかありません。 そこで、Python3にはOpenCV3、Python2にはOpenCV2をインストールすることにします。 Python3, Python2それぞれが設定されているディレクトリに移動して、以下のコマンドを打ち込みます。

Python3 + OpenCV3

conda install -c https://conda.anaconda.org/menpo opencv3

Python2 + OpenCV2 (今回は2.4.11を入れます)

conda install -c menpo opencv=2.4.11

きちんとインストールされているかどうか確かめるためには、Pythonを起動して、以下のコードを実行しましょう。

import cv2
cv2.__version__

エラーが出ずに、インストールしたOpenCVのバージョンが表示されたら成功です。