pyenv

pyenvはPython本体ののバージョン管理をするツールです. 2019年現在, 流石にPython2を使うことがあるとは思いたくありませんが, Python2.7, 3.5, 3.6, 3.7といった複数のバージョンを使わなければならない場面も出てくるかもしれません.

基本的にPythonのバージョンは3.7を使っていきたいところですが, プロジェクトが依存するライブラリが3.6までしか対応していないだとか, そもそもPython2.7から移行するつもりのないライブラリさえ存在しています. 普通に考えてそのようなライブラリは淘汰されるべきなのですが, 使わなければならない事情もあるでしょう.

そうなったらpyenvの出番です. ただし, まずはpyenvを使わずに実現できないか熟慮し, どうしても必要な時のみ導入するようにしましょう.

Install

for Mac 🍎, Ubuntu18.04 🐧

❯ git clone https://github.com/pyenv/pyenv.git ~/.pyenv

本体をインストールしたら環境変数を設定しましょう.

❯ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
❯ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
❯ echo 'status --is-interactive; and . (pyenv init - | psub)' >> ~/.config/fish/config.fish

Usage

ここでは競技プログラミングのAtcoderが提供する環境であるPython3.4.3をインストールしてみましょう. ちなみにこのバージョンは非常に古いため, 特定用途以外には決して利用しないでください. では, 適当な作業ディレクトリを作成していきましょう.

❯ mkdir competitive_programming; and cd competitive_programming
❯ pipenv install --python 3.4.3

このように1度pyenvをインストールしてしまえばpipenvからPythonのバージョンを指定することができるので, その後あまりpyenvを意識することなく使えてしまうので便利です.

ただし, pyenvに関しては個人で実験, 開発をする場合には必要のないことがほとんどですので, よく考えて導入しましょう.