amazon linux の aws-cli を python3 ベースにする

未分類

amazon linux のデフォルトの python のバージョンは 2系なので aws-cli も python2ベースです。

$ aws --version
aws-cli/1.11.132 Python/2.7.12 Linux/4.9.62-21.56.amzn1.x86_64 botocore/1.5.95

これを python3系に上げる方法です。

pyenvをつかって、デフォルトのpythonを3系にします。

1. pyenvを使用するために必要なライブラリのインストール

$ sudo yum -y install gcc gcc-c++ make git openssl-devel bzip2-devel zlib-devel readline-devel sqlite-devel

2. pyenvのインストール、権限・パスの設定

$ sudo git clone https://github.com/yyuu/pyenv.git /usr/bin/.pyenv
$ cd /usr/bin/.pyenv
$ sudo mkdir shims
$ sudo mkdir versions
$ sudo chown -R ec2-user:ec2-user /usr/bin/.pyenv
$ vi ~/.bashrc
; 下記を追記
export PYENV_ROOT="/usr/bin/.pyenv"
if [ -d "${PYENV_ROOT}" ]; then
export PATH=${PYENV_ROOT}/bin:$PATH
eval "$(pyenv init -)"
fi
; ここまで
$ source ~/.bashrc

インストール可能なバージョンの確認

$ pyenv install --list
3.6.4
$ pyenv install 3.6.4
$ pyenv global 3.6.4
$ python -V
Python 3.6.4

この時点で pip が python3系になりました。

$ pip --version
pip 9.0.1 from /usr/bin/.pyenv/versions/3.6.4/lib/python3.6/site-packages (python 3.6)

元に戻したい場合、他のバージョンを使いたい場合

$ pyenv versions
system
* 3.6.2 (set by /usr/bin/.pyenv/version)
$ pyenv global {使いたいバージョン(system)}

本家 aws-cli アンインストール

$ sudo yum -y remove aws-cli

PIP経由で awscli を入れます

$ pip install awscli --upgrade --user

一回ログアウトして再ログイン

$ aws --version
aws-cli/1.14.14 Python/3.6.4 Linux/4.9.62-21.56.amzn1.x86_64 botocore/1.8.18

無事 3系になりました!

コメント

タイトルとURLをコピーしました