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

pyenvを使ってPythonをインストールする

Python

pyenv を使えば複数のバージョンのPythonを管理することができます。
それとディレクトリ単位でPython環境の切り替えができる pyenv-virtualenv も入れます。

環境

Mac OS X 10.9.4

インストールする

$ brew install pyenv pyenv-virtualenv

pyenvの設定

# ~/.zshrc or ~/.bashrc

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

pyenv-pip-rehashのインストール

pyenv rehashを自動化してくれます。

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

使い方

# インストール可能なバージョン一覧を表示する
$ pyenv install -l

# Pythonをインストールする
$ pyenv install 2.7.8

# インストールされたバージョンを確認する
$ pyenv versions

# 全体のバージョンを切り替える
$ pyenv global 2.7.8

# 特定のディレクトリ配下のみバージョンを切り替える
$ pyenv local 2.7.8

# インストールされたバージョンを削除する
$ pyenv uninstall 2.7.8

pyenv-virtualenvの使い方

# project-aプロジェクトを用意する。
$ mkdir project-a; cd project-a
# project-aという名前で環境を作成する。
[project-a]$ pyenv virtualenv --distribute 2.7.8 project-a
# project-aプロジェクトでproject-a環境を使うようにする。
[project-a]$ pyenv local project-a

# project-bプロジェクトを用意する。
$ mkdir project-b; cd project-b
# project-bという名前で環境を作成する。
[project-b]$ pyenv virtualenv --distribute 2.7.8 project-b
# project-bプロジェクトでproject-b環境を使うようにする。
[project-b]$ pyenv local project-b
# simplejsonをインストールする。
[project-b]$ pip install simplejson

$ pyenv versions
  system
* 2.7.8 (set by /Users/username/.pyenv/version)
  3.4.1
  project-a # 追加した環境も他のバージョンと同じように表示される。
  project-b

[project-a]$ pip list
pip (1.5.6)
setuptools (5.7)
wsgiref (0.1.2)

[project-b]$ pip list
pip (1.5.6)
setuptools (5.7)
simplejson (3.6.3)
wsgiref (0.1.2)

project-bにだけsimplejsonがインストールされています。
これでプロジェクト間で環境を分けて開発することができますね!