OSX ElcapitanでPython環境構築

  • 11
    いいね
  • 1
    コメント

手間取ったのでφ(..)メモメモ
python の複数バージョンの共存を狙って homebrew と pyenv でちょっと構築しようとしただけなのにえっらい苦労したのです。anacondaも入れました。

最初は何も考えてなかった

いきなりbrew istall pythonをかまして、
Permission denied - /usr/local/Frameworks
を食らったのでした。YosemiteからElcapitanにアップデートすると食らうらしく、

http://digitizor.com/fix-homebrew-permissions-osx-el-capitan/

こちらを参考に回避した後
pyenvをつかおうとbrew uninstall pythonをしたのでした。

pyenvのインストール

だれかまとめてくれているだろうと思ったらなんか散らばってる感があったので整理整理。。。
pyenvをインストールして

$ brew install pyenv

.bash_profileに下記を追記する。
(これがないと、pythonのバージョンが変わらない)

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

これでよかろう。と言うわけでPATHを通します。

$ source ~/.bash_profile

そしたら、インストール可能なバージョンを一覧表示して

$ pyenv install -l

インストールしたいバージョンを入れる

->とか、書いたら最近はanacondaだろ!と言われました。ので、anacondaの章までとんでください

shell-session
$ pyenv install 2.7.11

そしたら、また怒られてしまいました。。。zlibがなくてpythonがビルドできないらしい
というわけで、主なビルド時の問題ページに誘導されまして、

https://github.com/yyuu/pyenv/wiki/Common-build-problems

OSアップデートしたのもあり、下記の2コマンドで乗り切ったのでした。

shell-session
brew install readline xz
xcode-select --install

これで晴れて

shell-session
$ pyenv global 3.5.1

とかで、切り替えられるようになったとさ。めでたし、めでたし。
つぎはvirtualenvを頑張ってみるとします。

anacondaってなに?

しらべてみたらこちらが出てきました。

データサイエンティストを目指す人のpython環境構築 2016

pipもpyenvもvertualenvも内包してるconda最高! らしい。。。

上記の記事ではMacはさらりと流されてるますが、Macはpyenv->anacondaがいいらしい。良かった!無駄にならなかった。
(そもそも、何故Mac?と言われたわけですが)

というわけでanacondaをpyenvから入れます。取りあえず最新版を入れてみました。

(Python 2.x 系が使いたいからと最初、anaconda-2.4.0を入れたんですが、anaconda自体がpyenv同様のバージョン管理を内包しているので不要でした)

$ pyenv install anaconda3-2.4.0

インストールは待ち時間が長めな感じ、インストールが終わったら切り替えてバージョンを確認してみました。

$ pyenv global anaconda3-2.4.0
$ python --version
Python 3.5.0 :: Anaconda 2.4.0 (x86_64)

うん。よきかな、よきかな。
ところでデーターサイエンティストを目指す記事には pyenv と anaconda で active が衝突する問題の解決策がのってますが、これはなんか嬉しくなさそう。。。

と言うわけで、同じ y__sama さんの下記の記事を見ると

pyenvとanacondaを共存させる時のactivate衝突問題の回避策3種類

デメリット: pyenv localが使えない。

ってかいてありました。あ、やっぱり?
と言うわけで回避策3種類のプラン2を選択します。

OSXでは.bachrcは読み込んでくれないので、.bash_profileを編集します。

.bash_profile
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
alias activate="source $PYENV_ROOT/versions/anaconda3-2.4.0/bin/activate"

これでよかろう。

$ source ~/.bash_profile

さて、conda自体のアップデートを先に念のためやった方がいいらしいので、やっておきます。
2行目だけでも良いらしいのですが、ここは二段階で。。。

$ conda update conda
$ conda update --all

トータル200MB超のアップデートで、どう考えても時間がかかるので気長に待ちます。
conda update anacondaはやっちゃだめっぽいです。依存解決でバージョンがまき戻ってました。

おもむろにpython 2.x環境を作ってみます。折角なので
データサイエンティストを目指す人のpython環境構築 2016
を参考にさせていただき、anacondaとしてまとめてで。。。

$ conda create -n anaconda2 python=2.7 anaconda

ちなみに、このコマンドはconda updateしてからじゃ無いと失敗しました。。。
環境が構築されている事を確認して。

$ conda env list

入るときははaliasにsourceが入っているので、activateだけになります。

activate anaconda2
(anaconda2) MacBook-Pro:~ tnoho$ python --version
Python 2.7.12 :: Anaconda 4.1.1 (x86_64)

うんうん。良い感じです。
抜けるときは

source deactivate

これで幸せになれましたー。はー長かった。Pythonつらい。
あとはデータサイエンティストを目指す人のpython環境構築 2016を参考にさせて貰いつつanacondaを使っていこうと思うのでした。まる。