pyenvを使ってPython実行環境の構築

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を切り替えながら使えるようになりました。