pyenv + pyenv-virtualenv

このページについて

インストール記録

OS:FreeBSD

shell:tcsh

pyenvは複数のpythonバージョンを保持できる。
pyenv-virtualenvは同一バージョンのpythonでライブラリなどを別に保持できる1) virtualenvと混同されることが多いので注意

事前準備

依存するパッケージを事前に入れておきます

# pkg install git bash sqlite3

インストール

# git clone https://github.com/yyuu/pyenv.git ~/.pyenv
# git clone https://github.com/yyuu/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv

設定

# (末尾に入力)

homeにインストール

# Setting for pyenv # ***************** if ( -e $HOME/.pyenv/bin/pyenv ) then echo '>> Exist pyenv' # pyenvのルートパスを設定 setenv PYENV_ROOT $HOME/.pyenv # pyenvのディレクトリをPATHに追加 setenv PATH $PYENV_ROOT/shims:$PYENV_ROOT/bin:$PATH # デフォルトテンポラリディレクトリを~/tmpに変更 setenv TMPDIR $HOME/tmp # pyenvの再起動 pyenv rehash else echo '>> NO INSTALL pyenv' endif

/usr/binにインストール

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

変更2) 2021.12.13確認:pyenv init部分が変更されていますので注意

eval "$(pyenv init -)"
↓
eval "$(pyenv init --path)"

設定のリロード

# source $HOME/.cshrc

または

# source $HOME/.bashrc

※ PATHが書き換えられてpyenvのpythonが生きるため、この段階ではpythonが動かなくなってるので注意

python環境の構築

インストールリスト

# pyenv install --list

python2.7.14をインストール3) 数分かかります

# pyenv install 2.7.14

python3.6.3をインストール3)

# pyenv install 3.6.3

まだ、pyenv内に準備されているだけ

# python -V
pyenv: python: command not found
The `python' command exists in these Python versions:
2.7.14
3.6.3

環境ごとにディレクトリを作成（local）

# mkdir ~/tmp/python
# cd ~/tmp/python

python環境の構築

# pyenv local 2.7.14

確認

# pyenv local
2.7.14
# pyenv versions
* 2.7.14 (set by /root/pyenvtest/.python-version)
3.6.3
# python -V
Python 2.7.14

同じpythonバージョンで、別環境の構築

モジュールも別になります

# pyenv virtualenv 3.6.3 Flask-3.6.3
↑バージョン ↑環境名

環境ごとにディレクトリを作成（local）

# mkdir ~/tmp/python-flask
# cd ~/tmp/python-flask

python環境の構築

# pyenv local Flask-3.6.3

確認

# pyenv local
Flask-3.6.3
# pyenv versions
2.7.14
3.6.3
* Flask-3.6.3 (set by /root/tmp/python-flask/.python-version)
# python -V
Python 3.6.3

環境の保存と再構築

wheelをインストール

$ pyenv exec pip install wheel

pipでインストールしたモジュールの情報を保存

$ pyenv exec pip freeze > pyp_list.txt
$ pyenv exec pip wheel --wheel-dir=~/tmp/wheelhouse -r pyp_list.txt

保存した環境を使って同じものをインストール

$ pyenv virtualenv 3.6.4 test-364
$ pyenv global test-364
$ pip install -r pyp_list.txt --use-wheel --no-index --find-links=tmp/wheelhouse
$ pip freeze

コマンド

globalコマンドで切り替え

# pyenv global 3.6.3
# pyenv versions
2.7.14
* 3.6.3 (set by /root/.pyenv/version)

localコマンドで切り替え

pyenv versions で表示されているパスが違うことに注意

# cd targetpath
# pyenv local 2.7.14
# pyenv versions
* 2.7.14 (set by /targetpath/.python-version)
3.6.3
# cd ~
# pyenv versions
2.7.14
* 3.6.3 (set by /root/.pyenv/version)

インストール済リスト

# pyenv versions

virtualenv環境の作成

# pyenv virtualenv 3.6.3 my-env-3.6.3

virtualenv環境のリスト

# pyenv virtualenvs

virtualenvの有効化

# pyenv activate my-virtual-env-3.4.0

インストールした環境の削除

# pyenv uninstall my-virtual-env-3.4.0

Pyenvのupdate

# git clone git://github.com/yyuu/pyenv-update.git ~/.pyenv/plugins/pyenv-update
# pyenv update

参考

pyenv と pyenv-virtualenv で環境構築

pipの使い方 (2014/1バージョン)