ま、そんなところで。

ニッチな技術系メモとか、車輪を再発明してみたりとか.

pyenvでpython環境のバージョンを自由に切り替える

複数のpython環境を作るために pyenv をUbuntumacOSへ導入したのでメモ.

1. pyenvって何?

pythonのバージョンを簡単に切り替えることができるようにしてくれるツール.
たとえばv2.x系、v3.x系など複数のpython環境をコマンド1つで切り替えることが出来る.
ディレクトリ単位でもバージョン指定できるので、非常に便利.

2. Install

2-1. Ubuntuの場合

対象:Ubuntu 16.04 LTS

Readmeを参考にpyenv-installer をダウンロードして実行する.

pyenv-installerの実行

curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash

インストールが完了したら、pyenvが有効になるように .bashrc に以下を追加して、ターミナル起動時に有効になるように仕込んでおく.
ここは意外と忘れやすく、忘れると気づきにくいので結構ハマる.

.bashrcに追加

eval "$(pyenv init -)"

2-2. MacOSX/macOSの場合

対象:macOS 10.13 High Sierra

Homebrewで簡単にインストールできます.

brewでインストール

brew install pyenv

こちらもインストールが完了したら、pyenvが有効になるように .bash_profile に以下を追加するのを忘れずに.

.bash_profileに追加

eval "$(pyenv init -)"

3. python環境の追加/削除

pyenvでインストール可能なバージョンの一覧は以下のコマンドで.
anacondaなども指定できる. すごい.

pyenvでインストール可能な環境一覧表示

pyenv install --list

以下のコマンドでインストール/アンインストールできる.
pyenvのpython環境本体は${HOME}/.pyenv/以下に作成されるので、他ユーザやシステムへの影響はほとんどないので安心.

pythonの追加/削除

# 3.6.5の追加
pyenv install 3.6.5
# 3.3.1の削除
pyenv uninstall 3.3.1

4. python環境の切り替え

local指定で切り替えると、ディレクトリ単位でpython環境を切り替えることが出来る.
global指定の場合は全体.
ただし、システムが特定のpythonに依存している場合はglobal設定で使用されるpythonが変化してしまうので特定のコマンドが動かなくなるななどが考えられるので注意.
localのバージョン設定はディレクトリ内に.python-versionが配置される.
このファイルがあると、global設定よりも優先適用されるので注意.

python環境の切り替え

# global環境を3.6.5へ切り替え
pyenv global 3.6.5
# local環境を3.3.1へ切り替え
pyenv local 3.3.1
# システム標準に戻す
pyenv global system