PyenvでPythonをインストールしよう。
Pyenvは、Pythonのバージョン管理
Pyenv否定派もいるようだが、利用途中にPythonをアップグレードしたい場合や経験としてPython2系を動かしてみるといった場合に簡便に追加インストールすることができるので、利用を否定するものではない。
Pyenvのセットアップ
Pyenvは、bash製のツールなので、実行環境にbashが必要。そのため、Windowsで動かす場合には、Pyenvクローンであるpyenv-winがある。
これらのセットアップについて、GItHubのPyenvレポジトリのREADME.mdに詳しく記載があるため、参照。
ここでは、簡単にセットアップの流れについて説明する。
# Pyenvレポジトリを ~/.pyenv ディレクトリにクローンする
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
# pyenv利用のための環境変数を .bashrc に登録する
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc
cat ~/.bashrc # 上記3行が追記されたことを確認
# 登録した環境変数を現在の環境変数に反映させる
exec "$SHELL"
echo $PATH
echo $PYENV_ROOT
which pyenv
# 以上で、pyenvのセットアップは完了
# これから、Pythonのインストール編
# Pythonをインストールするにあたって、必要な依存関係パッケージを事前にインストールしておく
# 各OS環境ごとに必要なパッケージがことなるため、https://github.com/pyenv/pyenv/wiki#suggested-build-environment を参照
# 以下は、Ubuntu環境を想定
sudo apt-get update; sudo apt-get install make build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm \
libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev
# 上記、依存関係パッケージがなぜ必要化だが、PyenvはPythonのインストール時にバイナリをダウンロードしているわけではない。
# Python(Unix?)のお作法にのっとって、ソースコードをダウンロードし、それをコンパイルして適切な場所に配置する。
# そのため、ローカル開発環境(つまりコンパイル環境)とコンパイルに必要なライブラリをもっている必要があるのだ。
# PyenvにてPythonのインストール
# インストール可能なバージョンの確認
pyenv install --list
# Python 3系の最新バージョンのインストール
pyenv install 3:latest
# インストールされたバージョンの確認
# systemとインストールされたバージョン番号が確認できる。
# * がsystemについている状態であることが確認できる。
pyenv versions
# 現在のPythonを確認
# システムに初期インストールされているバージョンが確認できる。
which python # エラーになる場合、which python3
python --version
# Pythonの切替え
# {install version}には、pyenv versionsで確認した、Python 3系のバージョンを指定
pyenv versions
pyenv global {install version}
pyenv versions # * が指定したバージョンについていることを確認
which python # さきほど確認したディレクトリではなく、~/.pyenv/shims下のPythonが示されていることを確認
python --version # インストールしたバージョンが示されていることを確認
# 各種操作については、コマンドリファレンス https://github.com/pyenv/pyenv/blob/master/COMMANDS.md を参照
以上で、PyenvのセットアップとPythonのインストールが完了となる。
Ubuntuの場合、Pythonを各種OSの管理に使用しているため、システムデフォルトでのPythonを安易に変更(Pythonのバージョンを上げたり、さまざまなライブラリをインストール・アンインストールなど)することは、システムを壊してしまう可能性がある。
また、pipがない。venvがないなど、Pyhtonを公式からインストールするのにくらべて、さまざまUbuntu環境独自の考慮しなければならない項目が多い。そのため、OS付属のPython 環境をクリーンな状況にたもちつつ、別個にPython環境をもつのが、最適であると考えられる。(pyenvでのバージョン管理であれば、インストール・アンインストールは、.pyenv配下に集約される)
各種OS一律にセットアップをおこなうには、おなじ手順でおなじようにセットアップできるためpyenvでのセットアップが適している。