Linuxでpyenvを使ってPython実行環境を構築する方法について説明します

pyenvを使ってPythonをインストール
pyenvはパッケージでは提供されてなく、githubからモジュールをダウンロードして使います。
そのためgitを使える必要があるのでgitをインストールしておきましょう。
またpyenvがPythonインストール時に必要なコマンドやライブラリも合わせてインストールします。
これらはOSによって異なるので、pyenvのgithubサイトにある情報をもとにインストールしてください。
ここではUbuntuを例にインストールします。
sudo apt install -y build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev python-openssl git
gitが使えるようになったらgithubからpyenvをインストールします。
githubから任意の場所にクローンしますが、ここでは一般的な「$HOME/.pyenv」にインストールします。
$ git clone https://github.com/pyenv/pyenv.git ~/.pyenv
次にpyenvのインストールした場所を示す「PYENV_ROOT」環境変数を定義します。
そして「PATH」環境変数に実行ファイルのパスを指定してコマンド名だけで使用できるようにします。
また「pyenv init」をシェル起動時に実行できるようにします。
pyenvのgithubにある公式サイトではpyenv initはシェル設定の最後に実行できるようにするため.bash_profileに記述することが書かれていますが、ここでは.bashrcに記述しています。
$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
$ echo 'eval "$(pyenv init -)"' >> ~/.bashrc
$ source ~/.bashrc
pyenvが実行できることを確認します。
$ pyenv --version
pyenv 1.2.20-9-g8bf79eb4
pyenvの使い方
それではpyenvを使ってPythonをインストールしていきます。
pyenvでインストール可能なバージョンの確認は以下のコマンドを実行します。
$ pyenv install -list
ここでは現時点での最新バージョン「3.8.6」と、アナコンダ3「anaconda3-2020.02」をインストールします。
Python3.8.6のインストール
$ pyenv install 3.8.6
Downloading Python-3.8.6.tar.xz. . .
-> https://www.python.org/ftp/python/3.8.6/Python-3.8.6.tar.xz
Installing Python-3.8.6. . .
Installed Python-3.8.6 to /home/codeaid/.pyenv/versions/3.8.6
アナコンダ3のインストール
$ pyenv install anaconda3-2020.02
Downloading Anaconda3-2020.02-Linux-x86_64.sh. . .
-> https://repo.continuum.io/archive/Anaconda3-2020.02-Linux-x86_64.sh
Installing Anaconda3-2020.02-Linux-x86_64. . .
Installed Anaconda3-2020.02-Linux-x86_64 to /home/codeaid/.pyenv/versions/anaconda3-2020.02
pyenvでインストールしたPythonの情報を見るには以下を実行します。
$ pyenv versions
3.8.6
anaconda3-2020.02
使用するPythonを設定するには「pyenv global」か「pyenv local」コマンドを実行します。
これらの違いはglobalがどのディレクトリでも設定したPythonを実行し、localがそのディレクトリだけ設定したPythonを実行します。
なのでlocalはディレクトリごとに違うPythonを実行したい場合に使用します。
ここでは「pyenv global」を使って設定します。
$ pyenv global 3.8.6
$ pyenv versions
* 3.8.6 (set by /home/codeaid/.pyenv/version)
anaconda3-2020.02
$ python --version
Python 3.8.6
これでPythonを切り替えながら使えるようになりました。