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

きくらげ観察日記

好きなことを、適当に。

Pyenvとvirtualenvで環境の管理

Python

エキスパートPythonプログラミング』でPythonに対する知識がほぼ止まっていたのですが、どうやら最近は(かなり前から?) 「pyenv」なる便利コマンドで簡単にバージョンの切り替えを行うことができるようです。

インストール

$ brew install pyenv pyenv-virtualenv

コマンドは環境に応じて適宜読み替えてください。
インストール完了後に以下のようなメッセージが出てくると思いますので、必要ならば適宜支持されたコマンドを.bash_profile等に追加してください。

To enable shims and autocompletion add to your profile:
  if which pyenv > /dev/null; then eval "$(pyenv init -)"; fi
To use Homebrew's directories rather than ~/.pyenv add to your profile:
  export PYENV_ROOT=/usr/local/var/pyenv
To enable auto-activation add to your profile:
  if which pyenv-virtualenv-init > /dev/null; then eval "$(pyenv virtualenv-init -)"; fi

次に、必要なバージョンをインストールします。現在なら必要なバージョンは2.7, 3.4.3, 3.5.0の3つくらいでしょうか?

$ pyenv install 2.7
$ pyenv install 3.4.3
$ pyenv install 3.5.0

使い方

バージョンの設定をする

ライブラリやらGAEのPythonのバージョンの問題やらで、未だに特定のプロジェクトではPython 2.7を使っている、という場合はよくあります。
pyenvを使うと、「特定のディレクトリ以下ではバージョン◯◯を使う」というような設定を行うことができます。

$ cd /path/to/my-python2.7-project/
$ pyenv local 2.7

これでこのディレクトリ以下では自動的にPython 2.7が使われるようになりました。
使用するバージョンの設定は、そのディレクトリ直下の.python-versionファイルに保存されます。

virtualenvの環境を設定する

通常、Pythonで開発を行う場合はプロジェクト毎にvirtualenvで仮想環境を作り、その中でライブラリのインストール等を行うはずです。
pyenvなら、バージョンの管理だけではなく、ディレクトリ毎の仮想環境の設定も行うことができます。

新しい仮想環境を作るには、

$ pyenv virtualenv (バージョン名) (仮想環境の名前)

というようにします。今回はGAE用にPython 2.7の環境が作りたかったので、

$ pyenv virtualenv 2.7 gae-project

としました。この環境を特定のディレクトリ以下に適用する場合には、先程と同様に

$ cd hogehoge-project
$ pyenv local gae-project

とします。仮想環境の設定も同様に、.python-versionに保存されます。

バージョンと仮想環境の削除

インストールしたバージョンや環境を削除したい場合は、

$ pyenv uninstall (バージョンor環境名)

と入力します。