anyenv環境でpyenvインストール後にハマったのでメモ

発電状況監視システムのような、何か簡単な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インストール済みだった人は上記のファイルを全て削除しておきましょう。

スポンサーリンク

シェアする

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

フォローする