LoginSignup
5
3

More than 5 years have passed since last update.

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

Posted at

目的

  • Amazon Linuxへ、システムに影響のないように、現時点で最新のPython3.6.0を導入します。
  • Pythonの環境切り替えにvirtualenvを使用します。
  • コンパイルはインスタンススペックによりますが、5分ぐらいの作業です。
  • (実際はAmazonLinuxに特化した部分はありません)
  • Amazon Linux上にPython3.5.2の環境を導入する のPython3.6.0版です。基本的に手順は同じになります。

準備

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

手順

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

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

Python3.6.0をビルド

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

virtualenvをインストール

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

環境切り替え設定

  • ローカルPython環境を設定します。(最初だけ)
  • 指定したディレクトリが新たに設定したPython環境のトップディレクトリになります。
  • 試したところ、virtualenvのパスが狂ってしまうようなので絶対パス指定で記述しています(alternatives関連?)。ログインし直せば大丈夫そうなのでインストール時だけの現象なきがしています。
$ /usr/local/bin/virtualenv --python $HOME/local/myPython-3.6.0/bin/python3.6 $HOME/py360

切り替え確認

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

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

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

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

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

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
3