rbenv – ruby + python => pyenv

Posted on 2012-09-05 by yyuu

yyuu です。今回は、拙作の pyenv についてご紹介させて頂きます。

Python でアプリケーション開発をしている際には、特定のバージョンのインタプリタでアプリケーションの動作テストを行ないたくなることが多々あります。特に、複数のアプリケーションから参照されるライブラリを開発する場合などには、Python 2.x/3.x への両対応などを考えると、tox などを使って複数のバージョンを横断してテストを実行できる環境を用意することは重要になります。

そのような用途向けに、$HOME 以下のユーザ環境に Python インタプリタをセットアップするための補助ツールとして pythonbrewpythonz などといったツールが存在していたのですが、以下の点で不満を感じていました。

  1. Python で実装されているため、Python をインストールするのに Python が必要になる
  2. プロジェクトなどの単位で Python バージョンを切り替えることができない (pythonbrew)
  3. コマンドの検索パス ($PATH) を一切管理してくれない (pythonz)

これらへの対処のため、Ruby 向けの rbenv をベースに Python 向けに作り直した pyenv というものを作りました。このツールはの特徴としては以下のものがあります。

  1. bash シェルスクリプトによる実装 (zsh 対応)
  2. rbenv 流の Python バージョン管理の導入
  3. rbenv 流のコマンド検索パスの管理の導入

使いかたなどは基本的に rbenv と同様です。rbenv と違う点としては、pyenv には rbenv における ruby-build に相当する機能がデフォルトのプラグインとして提供されています。そのため、rbenv の場合よりもインストール手順が少しだけ簡素になります。


$ cd
$ git clone git://github.com/yyuu/pyenv.git .pyenv

インストールが完了したら、~/.pyenv/bin を $PATH に追加してください。

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

pyenv を有効化するために以下の設定をログインシェルの設定ファイルに追加してください。

$ echo 'eval "$(pyenv init -)"' >> ~/.bash_profile

設定が完了したらシェルを再起動することで pyenv が使用できるようになります。

$ exec $SHELL

pyenv についてのその他の使いかたなどは pyenv の README に記載してあるので、そちらを参照してください。それでは。


Tags

Uncategorized