anyenvとは?

発電状況監視システムのような、何か簡単なWebシステムを作りたくなった時、Ruby on railsがあると楽に組めるだろうか?rubyも勉強してみようか?

なんて考え始めると、複数バージョンのインタプリタを管理できるrbenvを入れておきたくなる。同様に、pythonはpyenv、nodejsはndenvがある。名前が似ているだけでなく、使い方もほぼ同じ。

ということは、これらを一括管理する方法があるのでは?と思ってググったらありました。

anyenvです。

インストール方法

homeディレクトリ下にanyenvコードをcloneします。

$ git clone https://github.com/riywo/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

動作確認

以下のようにコマンドを実行すると、使用可能な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インストール済みだった人は上記のファイルを全て削除しておきましょう。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

Close Bitnami banner
Bitnami