Help us understand the problem. What is going on with this article?

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

More than 3 years have passed since last update.

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

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away