virtualenvはPython用の仮想環境構築のためのモジュール。virtualenvwrapperはvirtualenvを楽に使うためのラッパー。とりあえずPython周りの環境は、基本的にPython自体をHomebrewで、モジュールはvirtualenv + virtualenvwrapper + pip で管理することにする。
Pythonのインストール
必要な物をHomebrewでインストール。
$ python -V
Python 2.7.2 # Macに標準で入ってるPython
$ brew install readline sqlite gdbm
$ brew install python --universal --framework
$ python -V
Python 2.7.2
あれっ?変化なし? bashだとPathは問題なく2.7.3が起動したけど、普段使ってるtmux + zshだと2.7.2が起動した。.zshrcに以下のようにPathの記述をする必要あり。
export PATH=/usr/local/bin:/usr/local/sbin:/sbin:/usr/sbin:${PATH}
.zshrcの再読み込み
$ source .zshrc
$ python -V
Python 2.7.3
これでPython2系最新版のインストールはOK。
virtualenvとvirtualenvwrapperのインストール
$ which pip # インストール先の確認
/usr/local/bin/pip # Homebrewでインストールした先になっているのを確認
$ pip install virtualenv
$ pip install virtualenvwrapper
$ mkdir ~/.virtualenvs
.zshrcに
#virtualenv settings
export WORKON_HOME=$HOME/.virtualenvs
. /usr/local/share/python/virtualenvwrapper.sh
を記述。
$ source .zshrc # リロード
virtualenvが見えない…
.zshrcに
export PATH=/usr/local/share/python:${PATH}
を追記。
$ source .zshrc
問題解決。
テスト
$ pip freeze # 現在のモジュールの確認 (virtualenvなど)
$ mkvirtualenv test1 # test1という環境を作成
$ deactivate #環境から抜ける
$ mkvirtualenv test2 # test2という環境を作成
$ workon # 環境の一覧を確認
test1
test2
$ workon test1 # testを選択
$ pip install numpy # test1 にnumpyをインストール
$ pip freeze # nuupyのインストールを確認
$ deactivate
$ pip freeze # 元の環境に影響がないのを確認
$ rmvirtualenv test1 # テスト環境を削除
$ rmvirtualenv test2
$ workon # 出力なし 削除完了
動作確認完了。モジュールの切り替えが非常に楽なので、今後の開発が捗りそう。
Octopressとzshのトラブル?
この記事を書こうとして、
$ rake new_post["2"]
を実行したら、
$ zsh: no matches found: new_post["2"]
というエラーが。何故だ?しかし、
$ rake new_post
$ Enter a post title:2
作成できたぞ?今回Pathを弄ったのが原因か?
この辺の動作がよくわからんので。また確認しとかないと。
追記
.zshrcに
alias rake="noglob rake"
を追記したらエラー消えました。ありがとうございます > shogo82148 。