目次

pyenv + pyenv-virtualenv

このページについて

インストール記録

pyenvは複数のpythonバージョンを保持できる。

pyenv-virtualenvは同一バージョンのpythonでライブラリなどを別に保持できる1)

事前準備

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

# 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にインストール

.cshrc
# 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にインストール

.bashrc
# 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)

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をインストール4)

# 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バージョン)

1)
virtualenvと混同されることが多いので注意
2)
2021.12.13確認:pyenv init部分が変更されていますので注意
3) , 4)
数分かかります