Amazon Linux にて pyenv-virtualenv でプロジェクト毎に python version と package が違う環境を用意する方法


前提

Amazon Linux と Ubuntu に pyenv を入れて Python 3.6.0 の環境を作る方法
http://qiita.com/rysk92/items/878fddbf23262628d89e

にて、pyenv を入れてあるものとする。

virtualenv のインストール

pyenv install 2.7.13
pyenv global 2.7.13
pip install virtualenv

pyenv-virtualenv

git clone https://github.com/yyuu/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv
echo 'eval "$(pyenv virtualenv-init -)"' > ~/.bash_profile

環境を作る

前提

例えば、

  • 1. AWS Batch で動かす前提の Python 3.6.0 の hoge_batch というプロジェクト
  • 2. AWS Lambda で動かす前提の Python 2.7.13 の hoge_lambda というプロジェクト

が欲しいとする。

それぞれプロジェクトのパスは下記とする。

  • hoge_batch: /path/to/hoge_batch
  • hoge_lambda: /path/to/hoge_lambda

環境の作成

pyenv virtualenv 3.6.0 hoge_batch
pyenv virtualenv 2.7.13 hoge_lambda

環境の設定

cd /path/to/hoge_batch
pyenv local hoge_batch

cd /path/to/hoge_lambda
pyenv local hoge_lambda

環境の切り替え

それぞれのプロジェクトのパスに移動すると、自動で切り替わる。

環境の設定の解除

プロジェクトのフォルダに .python-version というファイルができているので、それを削除すると、フォルダと環境の紐付けが消える。