Ubuntu (含 WSL) でpyenv をシステムワイドにインストールして python 3.7.6 をインストール

Ubuntu (18.04 LTS) は本稿執筆時点で,python3 (3.6.9) がインストールされているが,これも本稿執筆時点での macOS, Windows の Python (3.7.6) に合わせるてみようということで,/usr/local に pyenv をインストールして python 3.7.6 をインストールするメモ。

sudo apt update; sudo apt upgrade
sudo apt install git

sudo git clone https://github.com/pyenv/pyenv.git /usr/local/pyenv
sudo git clone https://github.com/pyenv/pyenv-virtualenv.git /usr/local/pyenv/plugins/pyenv-virtualenv

次に,PATH の追加:

sudo vim /etc/profile.d/pyenv.sh

として,以下の内容を書く:

export PYENV_ROOT="/usr/local/pyenv"
export PATH="${PYENV_ROOT}/bin:${PATH}"
# eval "$(pyenv init - )" # この記述だと,一般ユーザだと
# pyenv: cannot rehash: /usr/local/pyenv/shims isn't writable と言われるので,
eval "$(pyenv init - --no-rehash)"

一旦,logout/login し,which pyenv で確認。

なお,一般ユーザで pyenv できるのに,sudo pyenv とするとsudo: pyenv: コマンドが見つかりません… などと言われる場合は,以下のように。

$ visudo

# ~~~ 編集モードに入るので、下記のように変更 ~~~
# Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin コメントアウト
Defaults env_keep += "PATH" # 追加
Defaults env_keep += "PYENV_ROOT" # 追加

要りそうなものをインストール:

sudo apt-get install -y make 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

いよいよ,python 3.7.6 のインストール:

sudo pyenv install 3.7.6
sudo pyenv global 3.7.6

sudo pip install --upgrade pip
sudo pip install pipenv

正しくインストールされたかは,以下のようにしてチェック。

python -V
pip -V