pyenvを使って異なるバージョンのpythonを併用する #python

pythonの最新バージョンで動かないツールがあって、やむなく古いpythonを使うためにpyenvを入れてみた。

インストール

Macなのでbrewで入れる。

$ brew install pyenv

~/.bash_profile環境変数等を設定する。

#pyenv
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
if command -v pyenv 1>/dev/null 2>&1; then
  eval "$(pyenv init -)"
fi

使えるversionを確認する

すでにpythonが入っている場合、systemだけが表示されそう。

$ pyenv versions
* system

使いたいバージョンをインストールする

使いたいバージョンを探す。

3.6系とかならこんな感じ。

$ pyenv install --list | grep 3.6.*
  3.3.6
  3.6.0
  3.6-dev
  3.6.1
  3.6.2
  3.6.3
  3.6.4
  3.6.5
  3.6.6
  activepython-3.6.0

3.6.6をインストールしてみる。

$ pyenv install 3.6.6

インストールが完了すると、使えるVersionが増える。

$ pyenv versions
* system
  3.6.6

使うVersionを切り替える

system(3.7.0)から、3.6.6に切り替える。

$ python -V
Python 3.7.0
$ pyenv global 3.6.6
$ python -V
Python 3.6.6

特定ディレクトリの配下だけ使うバージョンを切り替える

特定のディレクトリ配下でだけ使用するバージョンを変更することも可能。

$ python -V
Python 3.7.0
$ mkdir -p ./hoge
$ cd hoge
$ pyenv local 3.6.6
$ python -V
Python 3.6.6
$ cd ../
$ python -V
Python 3.7.0

pyenv local を作ると .python-version というファイルが作られる。

中身は使用するバージョンが書いてあるだけ。

参考