目的
- 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