Kesinの知見置き場

知見を共有していきたいじゃないですか

結局Pythonはvirtualenvで管理してみることにした

念願の新しいMacBookAirを手に入れまして、開発に使用するPythonはOSデフォルトとは別に用意したいよねー。さらに言うと、ついにPython2.x系が2.7で開発ストップすることが確定したので、いつでもPython3.x系に移れるようにしたいし、できれば一部でアツいPyPyも含めて複数バージョンのPythonを切り替えつつ、テストが走る環境にしたいですね。

というわけで、調べてみたらPythonにもRubyPerlで大人気の"~brew"、"~env"みたいなのがいくつかあるらしい

  • pythonbrew
  • pyenv
  • pythonz

で、色々調べているうちに@ymotongpooさんのpythonz(pythonbrew)に関する私見という記事を拝見しました。

たしかにパッケージ管理ツールでPythonのインストールができて、virtualenvで仮想環境ごとPythonのバージョンが切り替えられるならpythonbrewとかは不要っぽいですね。

ということでしばらく以下の構成でやってみようと思います
Pythonのインストール: homebrew
Pythonの切り替え: virtualenv + virtualenvwrapper

レッツトライ

まずは普段使い用のPython2.7をインストール

$ brew install python

virtualenv, virtualenvwrapperのインストール

$ pip install virtualenv virtualenvwrapper

virtualenvwrapperにパスを通すために.bashrcに以下を追加

source /usr/local/bin/virtualenvwrapper.sh

Python3.3のインストール、切り替え

homebrewでPython3.3のインストール

$ brew install python3

次にvirtualenvwrapperでPython3.3を使う仮想環境を構築します。
mkvirtualenvコマンドに-pか--pythonオプションで使用するインタプリタを指定することができるので、homebrewでインストールしたPython3.3を指定してやります。

$ mkvirtualenv py3 --python /usr/local/bin/python3

これでこのpy3という仮想環境に切り替えると、使用するPythonは3.3になります。

$ workon py3
$ python -V
Python 3.3.2

PyPyのインストール、切り替え

Python界隈の一部でアツいPyPyも試せるように環境だけは用意しておきます。
PyPyについては2011年のアドベントカレンダーのこの記事が一番おもしろいと思います。
ちなみに外国で開発されているものなので、名前についてはノータッチでお願いいたします//

$ brew install pypy
$ mkvirtualenv -p /usr/local/bin/pypy pypy
$ python -V
Python 2.7.3 (5acfe049a5b0, May 21 2013, 13:47:22)
[PyPy 2.0.2 with GCC 4.2.1 Compatible Apple LLVM 4.2 (clang-425.0.28)]

とりあえず環境だけは用意してみたので、これから長く使いそうなプログラムはテストを書いて、2.7系だけじゃなくて3.x系、PyPyでも動作するようにしていきたいと思います。

参考

http://ymotongpoo.hatenablog.com/entry/20100311/1268313718
http://ymotongpoo.hatenablog.com/entry/20120516/1337123564
https://plus.google.com/114892104481751903211/posts/aPgWC3B7Wrg
http://ymotongpoo.hatenablog.com/entries/2012/09/16
http://virtualenvwrapper.readthedocs.org/en/latest/index.html