発電状況監視システムのような、何か簡単なWebシステムを作りたくなった時、Ruby on railsがあると楽に組めるだろうか?rubyも勉強してみようか?
なんて考え始めると、複数バージョンのインタプリタを管理できるrbenvを入れておきたくなる。
同様に、pythonにもpyenvというものがある。
最近流行りのnodejsにもndenvというものがある。
名前が似ているだけでなく、使い方もほぼ同じ。
ということは、これらを一括管理する方法があるのでは?
と思ってググったらありました。anyenvです。
インストール手順は上のリンク先を見れば分かりますが、一応解説。
anyenvコード取得
homeディレクトリ下にanyenvコードをcloneします。
$ git clone https://github.com/riywo/anyenv ~/.anyenv
anyenv環境設定
homeディレクトリ下の.bash_profileにanyenv環境設定して、shellを再起動する。
bash以外のshellを使う方は適宜読み替えてください。
$ echo 'export PATH="$HOME/.anyenv/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(anyenv init -)"' >> ~/.bash_profile
$ exec $SHELL -l
anyenv動作確認
以下のようにコマンドを実行すると、使用可能なenv系ツールをリストアップしてくれます。
…Go, Lua, Scalaにも同様のツールが存在することを、ここで初めて知りました。
$ anyenv install -l
Available **envs:
Renv
crenv
denv
erlenv
...
goenv
luaenv
...
ndenv
...
pyenv
rbenv
...
scalaenv
anyenv環境下のpyenvへのプラグイン導入
virtualenvプラグインも、以下のようにすれば導入できます。
$ git clone https://github.com/yyuu/pyenv-virtualenv ~/.anyenv/envs/pyenv/plugins/pyenv-virtualenv
トラブルシューティング
こんなに簡単な導入手順なのに、何故かハマりました。
pyenv global 3.5
のようにコマンド実行しても、pythonバージョンが切り替わらないのです。
いろいろググってみると、どうも事前にpyenvを導入した後uninstallした際、pyenvの設定ファイルが中途半端にhome下に残っていたのが原因であることが判明しました。1
pyenvのバージョン選択はまず、pyenv shellで設定されるPYENV_VERSION環境変数。
次に、pyenv localで設定できる、カレントディレクトリにある.python-versionファイル。
次に、pyenv global で設定できる~/.pyenv/versionファイル。
全てがなかったらsystemのpython。
既にpyenvインストール済みだった人は上記のファイルを全て削除しておきましょう。