Python
Linux
pyenv

※本記事を読む前にpyenvが必要かどうかフローチャート - Qiitaを参照することをおすすめします。

pyenvについてまとめたいと思います。


pyenvとは

Linuxにおいて、Pythonの実行環境を管理するツールです(例えば、2.x系と3.x系を使い分ける、といった用途が想定されるかと思います)。


インストール


pyenv



  1. anyenvまとめ - Qiitaに従って、anyenvをインストールします。

  2. Ubuntuの場合、以下のコマンドを実行し、Pythonの実行環境をインストールするのに必要なパッケージや実行環境のダウンロードを高速化させるパッケージをインストールします。

$ sudo apt install curl llvm sqlite3 libssl-dev libbz2-dev libreadline-dev libsqlite3-dev libncurses5-dev libncursesw5-dev python-tk python3-tk tk-dev aria2


  1. 以下のコマンドを実行し、pyenvをインストールします。

$ anyenv install pyenv


  1. 以下のコマンドを実行し、pyenvのコマンドを有効にします。

$ source ~/.bashrc


pyenv-pip-rehash

pip等でshims (実行環境間の差異を埋める緩衝材としてのレイヤー) が更新された場合、pyenv rehashコマンドによって情報を更新する必要がありますが、それを自動化してくれるプラグインです。

1. 以下のコマンドを実行し、pyenv-pip-rehashをインストールします。

$ git clone https://github.com/yyuu/pyenv-pip-rehash $(pyenv root)/plugins/pyenv-pip-rehash


pyenv-virtualenv

ある実行環境を元に複数の実行環境を生成したい場合に使うプラグインです。

1. 以下のコマンドを実行し、pyenv-virtualenvをインストールします。

$ git clone https://github.com/yyuu/pyenv-virtualenv $(pyenv root)/plugins/pyenv-virtualenv


pyenv-ccache

ccashe (詳しくはccacheでC/C++のコンパイルを高速化する - Qiitaを参照) を使うことで、CPython (公式によるPython実装) のインストールの高速化を図るプラグインです。


  1. ccasheをインストールします (Ubuntuの場合、以下のコマンドを実行します)。

$ sudo apt install ccache


  1. 以下のコマンドを実行し、pyenv-ccacheをインストールします。

$ git clone https://github.com/yyuu/pyenv-ccache $(pyenv root)/plugins/pyenv-ccache


pyenv-pip-update

pipやcondaで管理されているライブラリのアップデートを簡単に行えるようにするプラグインです。


  1. 以下のコマンドを実行し、pyenv-pip-updateをインストールします。

$ git clone https://github.com/massongit/pyenv-pip-update $(pyenv root)/plugins/pyenv-pip-update


コマンド

コマンド
内容

$ pyenv
ヘルプ

$ pyenv root
pyenvのインストール先の絶対パス

$ pyenv shell
シェルにおける実行環境

$ pyenv shell 実行環境名
シェルにおける実行環境の設定

$ pyenv global
デフォルトの実行環境

$ pyenv global 実行環境名
デフォルトの実行環境の設定

$ pyenv install 実行環境名
指定された実行環境のインストール

$ pyenv uninstall 実行環境名
指定された実行環境のアンインストール

$ pyenv pip-update
pipやcondaで管理されているライブラリのアップデート (pyenv-pip-update)
※condaを使用する実行環境 (anacondaやminiconda) については、condaで管理されているライブラリのみアップデート

$ pyenv virtualenv 実行環境(A)名 実行環境(B)名

pyenv installでインストールされた実行環境(A)を元に実行環境(B)を生成する (pyenv-virtualenv)

$ pyenv versions
インストールされている実行環境一覧

※anyenvにanyenv-updateをインストールしてある場合、pyenv本体やプラグインのアップデートはanyenvのアップデートの一部として行うことができる

※pipを行うときにroot権限で実行しないようにする


参考文献