pyenvの基本

概要

pyenvの使い方を説明する。pyenvとはpythonの複数のバージョンをインストール、管理できる便利なツールである。pyenvの他にもanacondaでバージョン管理ができるが、Macの場合はanacondaを使用するとhomebrewが競合してしまうのでpyenvを使うと良い。Macでないならanacondaでも十分かも...

環境

MacOS Mojave 10.14.5
pyenv 1.2.13

pyenvのインストール

公式の通りにインストールする。通常はgitでインストールするが、Macの場合はhomebrewでもインストールできる。

1. gitからインストールする。Windows, linuxの方はこちらの方法。gitがインストールされていないMacの方はこちら

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

2. homebrewでインストールする。macであればこちらでもよい。

$ brew update
$ brew install pyenv

パスの設定

$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile

pyenvのおまじない

$ echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n  eval "$(pyenv init -)"\nfi' >> ~/.bash_profile

シェルの再起動

$ exec "$SHELL" -l

これにより、.bash_profileを読み込むことができる。以下を実行してpyenvのバージョンが表示されればOK。

$ pyenv --version
pyenv 1.2.13-12-g8a56fe64

pyenvの使い方

$ pyenv --help
Usage: pyenv <command> [<args>]

Some useful pyenv commands are:
   commands    List all available pyenv commands
   local       Set or show the local application-specific Python version
   global      Set or show the global Python version
   shell       Set or show the shell-specific Python version
   install     Install a Python version using python-build
   uninstall   Uninstall a specific Python version
   rehash      Rehash pyenv shims (run this after installing executables)
   version     Show the current Python version and its origin
   versions    List all Python versions available to pyenv
   which       Display the full path to an executable
   whence      List all Python versions that contain the given executable

See `pyenv help <command>' for information on a specific command.
For full documentation, see: https://github.com/pyenv/pyenv#readme

pyenv commandsで使用できるコマンド全てを参照できる。

インストールできるバージョンの参照

$ pyenv install --list
Available versions:
  2.1.3
  2.2.3
  2.3.7
  2.4.0
  2.4.1
  2.4.2
  2.4.3
...

数値のみであるものはpythonのバージョンである。pythonだけでなくanaconda, miniconda等もある。

pythonのインストール

pyenv install --listで確認したバージョンのうちインストールしたいバージョンを選ぶ。少々時間がかかります。

python3.7.1のインストール

$ pyenv install 3.7.1

anaconda3-5.3.0のインストール

$ pyenv install anaconda3-5.3.0

インストールしたpythonを有効化する

ここでpythonをインストールしてもすぐに使えるわけではなく、インストールしたバージョンに切り替える必要があります。

今使っているpythonバージョンの確認

$ python -V
Python 2.7.12
$ pyenv version
system

今はpython2.7.1をシステムから利用していることがわかる。

インストールした全ての環境の確認

$ pyenv versions
* system
  3.7.1
  anaconda3-5.3.0

*が現在使っている環境を表している。systemはシステム上のpythonを使っていることを表す。今はsystemの他にもpython3.7.1anaconda3-5.3.0の環境があることがわかる。

バージョンの切り替え

バージョンの切り替え方法はgloballocalの2種類が存在する。

今回は全ディレクトリでpython3.7.1が使えるように設定する。

$ pyenv global 3.7.1
$ pyenv versions
  system
* 3.7.1
  anaconda3-5.3.0
$ python -V
Python 3.7.1

環境がsystemから3.7.1に切り替わり、pythonのバージョンも切り替わったことがわかる。

$ pyenv local 3.7.1

pyenv localを実行すると.python-versionが作成される。

アンインストール方法

pyenvで環境をアンインストールをする際は、アンインストールする環境以外にバージョンを切り替えてからするとよい。

$ pyenv uninstall 3.7.1

インストールした場所の確認

インストールしたpythonの場所を確認する。pyenv whichwhichでは結果が異なる。

$ pyenv which python
/Users/USER/.pyenv/versions/3.7.1/bin/python
$ which python
/usr/bin/python