こんにちは、えんせきです。
Goodfellow先生他が書いて松尾教授が監訳した深層学習が届いたので、ペラペラめくって見ています。
つまりなにしたの?
度々、Blogで何か作業する時に使っているpyenv-virtualenv。画処理をするためのパッケージ郡、ディープラーニングをするためのパッケージ郡等色々別々に入れて、行き来すると便利。
というわけで、最近OSをクリーンインストールしてpyenv-virtualenvをインストールし直したので紹介する。
さすがにそれだけだとアレなので使い方も紹介する。
pyenv-virtualenvとは?
UNIXライクなシステム上でPythonの仮想環境と環境を管理する機能を提供てくれる。
具体的には、作業するディレクトリごとにPythonのバージョンや入っているパッケージを決めて自動的に反映してくれて便利だから使っている。
github.com
インストールする方法
最近クリーンインストールしたのはUbuntuなのでUbuntuの場合とMacOSの場合を紹介する。
Ubuntuの場合
便利なのでInstallerを使ってしまっている。
github.com
curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash
.bash_profileや.zshrcに以下を追加する
export PATH="$HOME/.pyenv/bin:$PATH" eval "$(pyenv init -)" eval "$(pyenv virtualenv-init -)"
使う方法
Pythonのバージョンを指定してインストールする
例: Python3.6.4をインストールしたい場合
pyenv install 3.6.4
例: Anaconda3-5.1.0をインストールしたい場合
pyenv install anaconda3-5.1.0
新しい環境(virtualenv)を作る
Pythonのバージョンを何らか入れてあるとする。
例: Python3.6.4でmypyenvという名前の環境を作る場合
pyenv virtualenv 3.6.4 mypyenv
ディレクトリで使う環境(virtualenv)に反映する
mypyenvという環境を作ってあるとする
例: mypyenvdirというディレクトリに入ったらmypyenvという環境が使えるようにする場合
mkdir mypyenvdir cd mypyenvdir pyenv local mypyenv
プロンプトに環境名がつくので、さらに実行して確認
(mypyenv) $python Python 3.6.4 (default, Mar 2 2018, 00:45:54) >>>
環境のパッケージをアップグレードする
実験用にmypyenvを作ったのが古くて、最近のパッケージに一斉に更新したいと思ったとする。
例: mypyenvのパッケージを一斉にアップグレードする場合
【危険】既存のコードを動かす環境になっている場合アップグレードは慎重にやったほうがよい
pip list -o | awk '{print $1}' | xargs pip install -U
ディレクトリで使う環境をシステムデフォルトに戻す
例: ディレクトリで使う環境をシステムデフォルトのPythonに戻す場合
pyenv local system
プロンプトの環境名が外れるのでさらに実行して確認
$python Python 2.7.10 (default, Jul 15 2017, 17:16:57) >>>
過去にmypyenvを反映したディレクトリには
.python-version
という以下のディレクトリで反映するべき環境が書いてあるファイルが残っているので、
これも都度削除すると良い。
仮にまだ使っているところでこれを削除しても、
pyenv local mypyenv
すれば復活するので大丈夫。
どんな環境があったか確認する
例: 調子に乗って幾つか環境を作ったが何が入っているかわからなくなった場合
pyenv versions system 2.7.13 3.6.4 3.6.4/envs/mypyenv
環境を削除する
例: いらない環境(mypyenv)を見つけた場合
pyenv uninstall mypyenv
削除した環境を確認する
pyenv versions system 2.7.13 3.6.4