読者です 読者をやめる 読者になる 読者になる

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を作る。