Amazon Linux 2でpython3をデフォルトにする
2019/10/20

Amazon Linux 2のデフォルトのpythonはpython2となっています。
これをpython3にしたくて、あれこれやったときのメモ。
OSはAmazon Linux 2
uname -r
4.14.138-114.102.amzn2.x86_64
現在のpython
python -V
Python 2.7.16
一応、yumをアップデートしとく。
sudo yum update -y
以下をインストール
・bzip2-devel
・gcc
・gcc-c++
・git
・libffi-devel
・openssl-devel
・readline-devel
・sqlite-devel
・zlib-devel
sudo yum -y install bzip2-devel gcc gcc-c++ git libffi-devel openssl-devel readline-devel sqlite-devel zlib-devel
※”Failed to set locale, defaulting to C”が出ても無視でOK。
pyenvをインストールする
sudo git clone https://github.com/yyuu/pyenv.git /usr/bin/.pyenv
pyenvの起動には必要だが、git cloneしても作成されないディレクトリを手動で作成
sudo mkdir /usr/bin/.pyenv/shims
sudo mkdir /usr/bin/.pyenv/versions
.pyenvのownerをec2-userにする
sudo chown -R ec2-user:ec2-user /usr/bin/.pyenv/
pyenvのパス設定など
echo 'export PYENV_ROOT="/usr/bin/.pyenv"' >> ~/.bash_profile
echo 'export PATH="${PYENV_ROOT}/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
一応、確認
cat ~/.bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/.local/bin:$HOME/bin
export PATH
export PYENV_ROOT="/usr/bin/.pyenv"
export PATH="${PYENV_ROOT}/bin:$PATH"
eval "$(pyenv init -)"
編集した.bash_profileを読み込む
source ~/.bash_profile
pyenvコマンドが認識されることを確認
pyenv --version
pyenv 1.2.14-6-gddc56ebe
python3.7.4をインストールする
※ちょっと時間かかる。
pyenv install 3.7.4
Downloading Python-3.7.4.tar.xz...
-> https://www.python.org/ftp/python/3.7.4/Python-3.7.4.tar.xz
Installing Python-3.7.4...
Installed Python-3.7.4 to /usr/bin/.pyenv/versions/3.7.4
pythonのバージョンを切り替える
pyenv global 3.7.4
Python 3.7.4
おしまい。