Pythonをはじめよう(EC2 -Ubuntu-Python2.7.9)

#参照
•Pythonプロフェッショナルプログラミング
•Pythonプロフェッショナルプログラミング第2版

•インスタンスを立ちあげてみよう！～Ubuntu編～
http://recipe.kc-cloud.jp/archives/1199

•Python パッケージ管理技術まとめ
http://www.yunabe.jp/docs/python_package_management.html



#EC2

Ubuntu Server 14.04 LTS (HVM), SSD Volume Type
を選択

※LTSとは長期保証版

```
mv Desktop/hoge.pem .

chmod 600 hoge.pem
```

Elastic IP

- 関連付ける

```
ssh -i hoge.pem ubuntu@IPアドレス
```

#「apt-get」と「aptitude」の違い
http://bi.biopapyrus.net/linux/aptget.html


#aptパッケージのインストール

•Linuxではソフトウェアのことを「パッケージ」という。
•Ubuntuは、apt-getコマンドによってパッケージを管理できる。

•「-y」オプションをつけて実行するとインストール途中にyes,noを聞かれる設定に対して、全てyesの選択をする。

•build-essentialは、Ubuntu上でPythonのビルドに必要なツール郡　(gcc,makeなど)を一括でインストールしてくれるパッケージ。

```
•まずは、パッケージを全体的に更新。
•併せてPythonによる開発で必要なパッケージをインストールする。

sudo apt-get -y update

sudo apt-get -y upgrade

sudo apt-get -y install build-essential

sudo apt-get -y install libsqlite3-dev

sudo apt-get -y install libreadline6-dev

sudo apt-get -y install libgdbm-dev

sudo apt-get -y install zlib1g-dev

sudo apt-get -y install libbz2-dev

sudo apt-get -y install sqlite3

sudo apt-get -y install tk-dev

sudo apt-get -y install zip

sudo apt-get -y install libssl-dev
```

#Python関連パッケージのインストール

```
•python-devのインストール

sudo apt-get -y install python-dev

•pipのインストール

wget https://bootstrap.pypa.io/get-pip.py

sudo python get-pip.py

```

※pipは、Pythonのサードパーティライブラリを管理するツール。
※aptコマンドでもインストールできるが、バージョンが古い。
 get-pip.pyを使って最新版をインストールする。
※pipはビルドが必要なパッケージをインストールする際にはgcc等によるビルドを実行する。

#pythonバージョンの確認
```
python -V
```
※Ubuntu14.04では、Python2.7.6がインストールされている。

```
•pipのバージョン確認
pip --version
```

---
#サードバーティー製のパッケージのインストール(PyPl)
「pip installコマンド」で「サードパーティ製パッケージ」をインストールできる。
「サードパーティ製パッケージ」は、pyPl(パイピーアイ)と呼ばれる。
(Pythonパッケージを共有するリポジトリに登録されている)

Pythonでソフトウェアを開発する際には、Pyplから必要なパッケージをインストールする。
(PHPにおけるPEAR)

```
pipでサードパーティー製のパッケージをインストールする
•virtualenv

sudo pip install virtualenv
```
※/usr/local/lib/python2.7以下にインストールされる。

※virtualenvとは、
 仮想的なPythonの実行環境を作成する。これをvirtualenv環境と呼ぶ。
 この環境を利用中は、/usr/local/lib/python2.7ではなく、
 仮想的なvirtualenv環境に対して行われる。

```
pip freezeでインストールされているパッケージを確認

pip freeze

 /usr/local/lib/python2.7にインストールされているパッケージの一覧が表示
```

新しくvirtualenv環境を作る

#virtualenv環境の作成
```
#virtualenvによる仮想環境の作成

mkdir ~/work

cd ~/work
```

#環境を作るのはこれ
```
virtualenv venv
```
※workディレクトリの直下に「venv」というディレクトリが作成される。(これがvirtualenv環境ディレクトリ)

#Pythonのバージョンを指定して環境を作るのはこれ
```
virtualenv --python=/opt/python2.7.9/bin/python venv2

```

#virtualenv環境の有効化

```
sourceコマンドでactivateを実行して、virtualenv環境を有効化する。
source venv/bin/activate
```
```
仮想環境 venvを停止
deactivate
```

#virtualenv環境を有効化している状態で、再度pip freezeでインストールされているパッケージを確認してみる
```
(venv)$pip freeze
argparse==1.2.1
wsgiref==0.1.2

※追加インストールされたパッケージがひとつもない状態。
```

#PythonをUbuntuにインストール方法の整理

•1. Ubuntu公式のdebパッケージからインストール
•2. ソースファイルからビルドしてインストール
•3. PPA(Personal Package Archives)からdebパッケージとしてインストール

1と3は最新とは限らないから。

#ソースファイルからビルドしてインストール
```
sudo wget https://www.python.org/ftp/python/2.7.9/Python-2.7.9.tgz
```
```
tar xvzf Python-2.7.9.tgz
```
```
cd Python-2.7.9
```
```
LDFLAGS="-L/usr/lib/x86_64-linux-gnu" ./configure --prefix=/opt/python2.7.9

※LDFLAGSオプションで sqlite3ライブラリファイルへのパスを指定して、configure を実行します。
```
```
make
```
```
sudo make install
```

```
/opt/python2.7.9/bin/python -v

```
python 2.7.9と表示される


#新しい環境を作ってPythonを使い分ける

```
新しく環境を作るときに、pythonのバージョンを指定する

virtualenv --python=/opt/python2.7.9/bin/python venv2
```
```
source venv2/bin/activate
```

---

#Mercurialのインストール(バージョン管理)

```
sudo pip install mercurial
```

###バージョン確認

```
hg--version
```

###AWSのubuntuを日本語化
http://infrase.jpn.org/?p=27