Amazon Linux上にPython3.5.2の環境を導入する


目的

  • Amazon Linuxへ、システムに影響のないように、現時点で最新のPython3.5.2を導入します。
  • コンパイルはインスタンススペックによりますが、5分ぐらいの作業です。
  • (実際はAmazonLinuxに特化した部分はありません)

準備

  • Amazon LinuxインスタンスをLaunchし、sshログインできるようにしておきます。

手順

必要パッケージをインストール

  • ソースからビルドするので必要パッケージをインストールします。
  • sqlite-develを入れておくと、ipythonのヒストリーを保持してくれます。
$ sudo easy_install virtualenv
$ sudo yum groupinstall 'Development tools'
$ sudo yum install openssl-devel
$ sudo yum install sqlite-devel

virtualenvをインストール

  • Python環境を切り替える仕組みとして使用する virtualenvをインストールします。
  • これはAmazon Linux標準のPython2.7.x環境にインストールします。
$ sudo pip install virtualenv

Python3.5.2をビルド

  • ソースをダウンロードしてコンパイルします。
  • インストール先はログインユーザーのホームディレクトリ内とします。
$ mkdir ~/src
$ cd ~/src
$ wget https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tgz
$ tar zxvf Python-3.5.2.tgz
$ cd Python-3.5.2
$ ./configure --prefix=$HOME/local
$ make
$ make install

環境切り替え設定

  • ローカルPython環境を設定します。(最初だけ)
  • 指定したディレクトリが新たに設定したPython環境のトップディレクトリになります。
$ virtualenv --python $HOME/local/bin/python3.5 ~/py352

切り替え確認

  • virtualenvで作成されたactivateスクリプトを実行することでPython3.5.2に切り替わります。
  • プロンプト先頭に環境を示す文字が追加されます。
$ source $HOME/py352/bin/activate
(py352)$ python --version
Python 3.5.2
  • 元の環境(Python2.7.x)に戻る場合は下記コマンドを使用します。
(py352)$ deactivate
$ python --version
Python 2.7.10

デフォルトでPython3.5.2にする

  • ログイン時にPython3.5.2環境に切り替えるようにします。
$ echo 'source $HOME/py352/bin/activate' >> ~/.bash_profile

切り替えコマンドをaliasにしておく

  • 頻繁に環境を行ったり来たりするとコマンドが面倒なのでalias設定しています。
$ echo 'alias p3="source $HOME/py352/bin/activate"' >> ~/.bash_profile