pyenvによるインストール
pyenvとは
Macのように、OSにPythonがプリインストールされているようなマシンを利用する場合、インストーラなどでpythonをインストールしてPATHを切り替えてしまったり、PythonのバージョンによってはOSの挙動や別のアプリケーションに影響を及ぼす可能性がある。
そのため、macOSではOSプリインストールのPythonはpython
、インストーラでインストールした場合のPython3系についてはpython3
というコマンドを使用することで切り替えているが、今後macOSのアップデートによりOSプリインストールのPythonバージョンが変わった場合どのようになるかは不明な部分が多い。
また、マイナーバージョン(3.5と3.8など)を複数インストールする必要がある場合はインストーラとaliasを切り替えるなどで対応可能だが、パッチバージョン(3.6.0と3.6.5など)を同一のマシンにインストールすることができない。
そこで、Macで複数のPythonをインストールし、開発環境を切り替えるためのツールがpyenvである。
pyenvはあくまで複数のPythonのバージョンをパッチレベルまで切り替えるためのツールである。 ただし、Macの場合は今後OSプリインストールのPythonとの共存がどのように扱われるか不明であるため、柔軟な対応ができるpyenvを紹介しておく。
pyenvをインストールするには、MacportやHomebrewというMacでのパッケージ管理システムを利用してインストールすることが多い。
本サイトでは、Homebrewからpyenvをインストールする。 Homebrewが未インストールの場合は、Homebrewのインストール を参考とすること。
pyenvのインストール
homebrewがインストールされると、brewコマンドが利用可能となる。brew install インストールするパッケージ
で様々な開発ツールがインストール可能となる。
brew install
コマンドを実施する際には、インターネットに接続されている必要がある。
pyenvのインストールは、以下のコマンドとなる。
% brew install pyenv
Mac OS Catalinaからは、ターミナルのデフォルトシェルがbashからzshとなった。
そのため、pyenvの設定内容を~/.zprofile
に以下を追加する。
export PYENV_ROOT=${HOME}/.pyenv
if [ -d "${PYENV_ROOT}" ]; then
export PATH=${PYENV_ROOT}/bin:$PATH
eval "$(pyenv init -)"
fi
pyenvインストールの確認
pyenvのコマンドを実行し、インストールが完了しているか確認する。 今回はpyenvでインストールできるバージョンの一覧を表示させてみる。
% pyenv install -l
Available versions:
2.1.3
2.2.3
2.3.7
2.4
2.4.1
2.4.2
2.4.3
2.4.4
.........
pyenv install -l でインストールしたいバージョンが表示されない場合は、pyenvのバージョンが古くなっている場合がある。その場合は、pyenv自体のアップグレードを行う必要がある。pyenvのアップグレードコマンドは以下の通り。
% brew upgrade pyenv
pyenvによる使用バージョンのインストール
pyenv install バージョン指定
で必要なバージョンのインストールが可能となる。
例えば、3.8.0と3.6.9をインストールする場合は以下のようになる。pyenvもインターネットへの接続が必須である。
% pyenv install 3.8.0
・・・
% pyenv install 3.6.9
pyenvでインストールされたPythonは、~/.pyenv
以下にインストールされている。
インストールされているバージョンを確認するためのコマンドは、pyenv versions
である。
$ pyenv versions
system (set by /Users/ユーザー名/.pyenv/version)
3.8.0
3.6.9
使用するPythonのバージョンを確定する
デフォルトで使用したいバージョンを指定する場合はglobal
、特定のディレクトリのみで使用するバージョンを指定するには、使用したいフォルダに移動したのちlocal
オプションを使用する。
Macの場合は、基本的にはglovalは使用しない方が良い。
例えば、~/Python38
では3.8.0を、~/Python36
では3.6.9を設定したいとする。
% mkdir ~/Python38 # ディレクトリの作成
% cd ~/Python38 # ディレクトリへ移動
% pyenv local 3.8.0 # 現在のディレクトリで使用するPythonのバージョンを指定
% python --version # pythonコマンドのバージョン確認
Python3.8.0 # 実行結果
% mkdir ~/Python36
% cd ~/Python36
% pyenv local 3.6.9
% python --version
Python3.6.9
上記の例の場合、~/Python38
と~/Python36
では指定のバージョンが、それ以外のディレクトリではOSでプリインストールされたpythonが使用される。
pyenvでのAnacondaインストール
pyenvでもAnacondaのインストールが可能である。ただし、pyenvに最新版のAnacondaが反映されるには公式でのダウンロードよりも若干のタイムラグが発生するため注意。
pyenvでインストールできるAnacondaのバージョンを確認するには、grepと組み合わせると良い。
% pyenv install -l | grep anaconda3
・・・
anaconda3-4.2.0
anaconda3-4.3.0
anaconda3-4.3.1
anaconda3-4.4.0
anaconda3-5.0.0
anaconda3-5.0.1
anaconda3-5.1.0
anaconda3-5.2.0
anaconda3-5.3.0
anaconda3-5.3.1
anaconda3-2018.12
anaconda3-2019.03
anaconda3-2019.07
anaconda3-2019.10
2018年12月からは、Anacondaのバージョンは発行年.発行月という表記方法に変わったので、2019年11月現在での最新版はanaconda3-2019.10である。
インストール方法は通常のPythonインストールと同様にpyenv install
コマンドで指定する。
% pyenv install anaconda3-2019.10
pyenvでインストールした場合でも、インストーラを使用した場合と同様にツールも含めてインストールされる。