aptとpyenvを併用するためのプラグインを作った
pyenv はご存知の通り、プロジェクトごとにPythonを自動で切り替えるツールです。
しかし、Pythonの各バージョンのインストールに時間がかかる欠点がありました。
pyenv install
はソースコードからPythonをビルドするからです。
aptなら十数秒で済むのに。
そこで、pyenv-register
はaptなどでインストールしたPythonをpyenvの環境に持ってきます。
使い方
普通にgitでインストール
$ git clone https://github.com/doloopwhile/pyenv-register.git ~/.pyenv/plugins/pyenv-register
$ exec "$SHELL"
aptでインストールしたPythonを指定するだけです。
$ pyenv register /usr/bin/python3.3
$ pyenv versions
* system (set by /home/xxxx/.pyenv/version)
system-3.3.2
経緯
実はpyenv-registerが無くてもpyenv install
に時間がかかる問題は
A. 腹筋でもしながら待つ
B. $HOME/.pyenv/versions
にaptのPythonのシンボリックリンクを作る
C. virtualenvで$HOME/.pyenv/versions
にaptのPythonのクローンを作る
などの解決方法があります(pyenv-registerはCの方法を自動化します)。
pyenvは複数のプロジェクトを開発する際に一々activate
などを呼ぶ必要が無くなるため、
とっても便利だと私は思っていました。
しかし、とあるとき「インストールに時間がかかるので使えない」
上記の方法を紹介すると「追加の作業が必要な方法は意味がない」とか言われました。
お前は、そんなにactivate
を呼びたいのかよ!ついカッとなって、気づいたらpyenv-registerを作っていました。
みなさま、pyenvでより良いPython生活を。
TODO: pyenvでtoxを使いやすくするためのpluginを作る。