- いろいろなバージョンのPythonを使いたい
- あるアプリはPython2系で、別のアプリはPython3系で開発したい
pyenvを使うと上記のやりたいことを実現できる。
インストール
Macの場合はhomebrewでインストールできる。
brew install pyenv
インストール後、~/.bash_profileに以下を追加する。
if which pyenv > /dev/null; then eval "$(pyenv init -)"; fi
使ってみる
まずはシステムにインストールされているPythonの情報を確認。
$ python -V Python 2.7.10 $ pip -V pip 7.1.2 from /usr/local/lib/python2.7/site-packages (python 2.7)
pyenvを使って別のバージョンのPythonを入れてみる。
pyenv installで指定したバージョンのPythonをインストールできる。
新しいバージョンのPythonを入れた時やバイナリを提供するパッケージをインストールしたときはpyenv rehashを実行。
$ pyenv version system (set by /Users/kenjih/.pyenv/version) $ pyenv install 3.5.1 $ pyenv rehash $ pyenv shell 3.5.1 $ pyenv version 3.5.1 (set by PYENV_VERSION environment variable)
Python 3.5.1が入ったっぽい。
現在のPythonのバージョンを確認してみる。
$ python -V Python 3.5.1 $ pip -V pip 7.1.2 from /Users/kenjih/.pyenv/versions/3.5.1/lib/python3.5/site-packages (python 3.5)
Pythonのバージョンの設定方法
pyenvは、以下の3つの単位でバージョンを設定できる。
設定単位 | 設定コマンド | 設定が記述される場所 |
シェルセッション | pyenv shell x.x.x | 環境変数 PYENV_VERSION |
アプリケーション | pyenv local x.x.x | カレントディレクトリの.python-version |
グローバル | pyenv global x.x.x | ~/.pyenv/version |
pyenvは上の設定内容に従って以下のようにPythonのバージョンを決める。
- 環境変数PYENV_VERSIONが定義されていればそれを使う
- カレントディレクトリに.python-versionファイルがあればそれを使う
- カレントディレクトリに.python-versionファイルがあればそれを使う
- rootディレクトリまで親を辿っていって.python-versionファイルがあればそれを使う
- ~/.pyenv/versionファイルを使う
アプリケーションごとの設定を試してみる
おそらく最もよく使うのはこの設定かなと思うので試してみた。
$ mkdir py2 && cd py2 && pyenv local 2.7.11 && cd .. $ mkdir py3 && cd py3 && pyenv local 3.5.1 && cd .. $ cd py2 && python -V && cd .. Python 2.7.11 $ cd py3 && python -V && cd .. Python 3.5.1
これは便利だ。
0 件のコメント:
コメントを投稿