読者です 読者をやめる 読者になる 読者になる

タイトルって難しい。

学力も体力もない人間の雑記帳。

pyenvで複数のバージョンのPythonを管理

今までPython使うにあたっては2.7.xを使ってきたのですが、そろそろ3系も使えるようにならなくちゃなーなんて(周りに流されて)考え始めたので、メモ代わりに。以下、Mac OS Xでの使用を想定しています。Windowsなんて知らん。
Pythonにおける複数のバージョン管理させる上で有名なのはpyenv。こいつがあれば「100人乗っても大丈夫!」みたいな感じで何人(いくつのバージョン)が載っても大丈夫だそうなのでさっそく導入してみました。

pyenvをいれてみよう


めんどくさいのでhomebrewを使ってpyenvを落としちゃいましょう。homebrewの導入はググってください。

$brew install pyenv

次に、

$vi .bash_profile

と入力してVimで~/.bash_profileに以下のものを挿入して保存。

export PYENV_ROOT="${HOME}/.pyenv"  
if [ -d "${PYENV_ROOT}" ]; then  
    export PATH=${PYENV_ROOT}/bin:${PYENV_ROOT}/shims:${PATH}  
    eval "$(pyenv init -)"  
fi

これでPATH関連の準備が整ったので、反映させます。

$exec $shell -l

以上で一番大切なところはほぼ終わりかと思います。

複数のバージョンを導入


インストール可能なバージョンは以下のように確認します。

$pyenv install -l

実際にインストールする際は次のやり方だけでOK。

$pyenv install 2.7.8  
$pyenv install 3.4.2

上の例だと、2.7.8と3.4.2が導入されました。あとは、バージョンを選択するだけです。
うちのMacが古いモデルであるために貧弱なせいなのかどうかわかりませんが、pyenv installで各バージョンをインストールするとえらい時間がかかります。

バージョン切り替え


全体のバージョンを切り替えたい場合

全体でバージョンを切り替えたい時に。

$pyenv global 2.7.8  
$pyenv rehash

あるディレクトリ下のバージョンを切り替えたい場合

このディレクトリ以下だけしたい!って時に。

$pyenv local 2.7.8  
$pyenv rehash

両パターンででてきたrehashってやつですが、これがないと切り替わりません。

っていっても実はrehashもしてくれる便利なものがあるので、下記のを入力してインストール。

$git clone https://github.com/yyuu/pyenv-pip-rehash.git ~/.pyenv/plugins/pyenv-pip-rehash

あとは、切り替わったか否かは

$python --version

とかで確認して下さい。デフォルトの2.7.5(少なくともMavericksはそうだった)とかだったらなんか設定を誤っている可能性があります。

$which python

でパスを確認するなり、pyenvで設定し直すなり・・・。
あとは、pipで使うパッケージを導入です。これってまさかバージョンごとなのかな・・・?

【参照させていただいたサイト様】
pyenvでPythonの環境をつくる - Web Application Security Memo
Mac OS Marvericks にHomebrewを使ってpyenv,pythonの環境設定を行うメモ - Qiita