Amazon Linux上にPython3.6.0の環境を導入する
3417 ワード
目的
- 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
- 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
$ sudo yum -y groupinstall 'Development tools'
$ sudo yum -y install openssl-devel sqlite-devel
$ 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
$ sudo pip install --upgrade virtualenv
$ /usr/local/bin/virtualenv --python $HOME/local/myPython-3.6.0/bin/python3.6 $HOME/py360
$ source $HOME/py360/bin/activate
(py360)$ python --version
Python 3.6.0
(py360)$ deactivate
$ python --version
Python 2.7.12
$ echo 'source $HOME/py360/bin/activate' >> ~/.bash_profile
$ echo 'alias p3="source $HOME/py360/bin/activate"' >> ~/.bash_profile
Author And Source
この問題について(Amazon Linux上にPython3.6.0の環境を導入する), 我々は、より多くの情報をここで見つけました https://qiita.com/shinsaka/items/a761d86146266953ef11著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .