pyenvpythonではpyenvというツールを使うことで、1台のPCに複数バージョンのpython環境を共存させることができます。pyenvは非常に便利なツールなのですが、仕組みがわかっていないと思った通りにバージョン切り替えを行えなかったりトラブルを生んでしまうことがあります。そこで、今回はpyenvの仕組みを確認してみました。作業を始める前に、現在の環境を確認しておきます。OSはAmazonLinuxになっていますが、実際はvagrant上でmvbcoding/awslinuxのboxを実行しています。2017.03pyenvのインストールまずは、pyenvをインストールします。pyenvはgitからcloneするだけでインストールできます。~/.pyenvpyenv自体がインストールできたか確認をかねて、pyenvのバージョンを確認します。本来ならここで~/.pyenv/binにPATHを通すところですが、今回は仕組みを把握するためにあえてPATHの設定を行わずに作業を進めます。1.2.4pyenvをオプションなしで実行すると、pyenvのヘルプが表示されます。-lでインストール可能なpythonのバージョン一覧を確認します。背選択肢は非常に多くあり、python2系、3系の選択だけでなくanacondaなどもインストールすることができることが確認できます。installコマンドで複数のバージョンのpythonをインストールしてみます。今回は、動作確認を兼ねてPython3系と2系の最新版だった3.6.5と2.7.15をインストールしてみました。/home/vagrant/.pyenv/versions/2.7.15インストールしたpythonの環境は.pyenv/versionsに展開されています。lsコマンドでインストールできたかを確認できます。2.7.12pyenvが管理しているバージョンはversionsで確認できます。「*」がついた行が現在の環境です。globalコマンドで、バージョンを切り替えてみます。オプションにglobalとあるので、システム全体の設定が切り替わりそうに見えますが、実際は実行しているユーザの環境のみに影響を与えます。2.7.15これによってpythonのバージョンが変わるかと思ったら、まだ変わりません。2.7.12ここで初めてパスを通します。2.7.12次に、下記のコマンドを実行してみます。-)"するとpythonのバージョンが切り替わりました。initによって変更されています。initコマンドによってpythonの実行パスが差し替えられることがわかりました。localで該当バージョンのpythonを.pyenv/shimsにコピーしているようです。-)の結果をechoすることで確認できます。localコマンドでpythonのバージョンを2.7.15に切り替えてみます。versionsコマンドでバージョンが切り替わったのを確認します。3.6.5再度バージョンを確認すると2.7.15に切り替わったことがわかります。pythonの実行パスは~/.pyenv/shims/のままです。python~/.pyenv/shims/python簡単にpyenvを使えるようにしておく最後に、次回以降もpyenvを簡単に使えるよう、自動で環境変数をセットするように.bash_profileを変更しておきます。evalコマンドを実行しなくてもよくなります。PMこの方法でインストールしたpyenvはどうやってアンインストールすればようのでしょうか。コメントをキャンセルメールアドレスが公開されることはありません。コメント名前メールアドレスサイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。(1)RSSの購読はこちら。