LoginSignup
16
10

More than 5 years have passed since last update.

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

Posted at

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

16
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
10