====== pyenv + pyenv-virtualenv ====== ===== このページについて ===== インストール記録 * OS:FreeBSD * shell:tcsh pyenvは複数のpythonバージョンを保持できる。\\ pyenv-virtualenvは同一バージョンのpythonでライブラリなどを別に保持できる((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 変更((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をインストール((数分かかります)) # pyenv install 2.7.14 python3.6.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 ===== 参考 ===== [[https://qiita.com/Kodaira_/items/feadfef9add468e3a85b#wheel%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6pip%E3%81%A7%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%97%E3%81%9F%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E3%81%AE%E6%83%85%E5%A0%B1%E3%82%92%E4%BF%9D%E5%AD%98|pyenv と pyenv-virtualenv で環境構築]] [[http://tdoc.info/blog/2014/01/15/pip.html|pipの使い方 (2014/1バージョン)]]