takuocean’s diary

備忘録がメインなので、説明が足りないことも多い。もう少し詳しくという人はコメントをお願いします。

Pyenvとpyenv-virtualenvの使い方

使ったのでメモ

最近使ったのでメモした。 今回はディレクトリごとにpythonの設定を変えられるようにした。
参考URL

qiita.com

今回の環境

mac OSX Sierra

pyenvとpyenv-virtualenvって?

pythonのバージョンやインストールするpackageを作るターゲットごとに変えたい時がある。そんな時に使えるのがpyenvとpyenv-virtualenv!

pyenv 

pyenvはpythonのバージョンを管理するツール。
例えば、python 3.4.3と2.7.10をインストールしてディレクトリごとに切り替えたりできる。

pyenv-virtualenv

pyenv-virtualenvはpyenvのプラグインになります。これを導入することでさらにディレクトリ単位でpythonのパージョン とパッケージを管理することができる。 #virtualenvというのも存在しますが、pyenv-virtualenvは違う。

環境の構築

まずはシェルの設定。僕はzshを使っているので、~/.zshrcに記入。 #bashの場合は ~/.bash_profileに記入

# ~/.zshrc

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

次にpythonの環境を構築

# pythonのインストール
# VERSIONは例えば3.4.3など
$ pyenv install VERSION

# 環境構築
# NAMEは好きな名前で
$ pyenv virtualenv VERSION NAME

# 環境選択
# NAMEを切り替えることで環境を変えられる
$ pyenv local NAME
(NAME)$ pyenv versions
  system
  VERSION
* NAME (set by /Users/XXXX/work/pyenv_test/.python-version)

# 構築した環境を削除する場合
(NAME)$ pyenv uninstall NAME

パッケージを簡単に引き継ぐ方法

pip freezeを使うことで現環境で利用しているパッケージをリストとして保存ができる。

# インストールしてあるパッケージをリストにするコマンド
$ pip freeze > mypckg.list

# リストにしたパッケージをインストールするコマンド
$ pip install -r mypckg.list

他の環境を立ち上げた後に

(NAME)$ pip install -r mypckg.list

でインストールできる。