2013年12月16日月曜日

PIL/PillowをUbuntu 12.04 64bitのvirtualenvへインストールする

はじめに

先日、django-wikiを使ってみようと思ったところ、依存関係のあるPIL/Pillowのインストールに少し手間取りました。そこで、PIL/PillowをUbuntu 12.04 64bit版のvirtualenv環境へインストールする方法を記録しておきます。

インストール方法

virtualenv自身のインストールも含め、下記に記載しました。なお、virtualenvで./envディレクトリにpython環境を構築することを前提としています。
sudo apt-get install python-virtualenv #virtualenvパッケージをインストール
virtualenv ./env #python環境を./envに作成
sudo apt-get install libjpeg8 libjpeg8-dev libpng12-0 libpng12-dev python-dev #PIL/Pillowに必要なパッケージをインストール
source ./env/bin/activate # virtualenvの環境を有効化
pip install pillow # or "pip install PIL".  pillowかPILをインストール

以上でインストール終了です。簡単ですね。

なお、libpngやlibjpegの後ろについている数字は比較的よく変更されるため、すぐ上記ではインストールできなくなる可能性があります。libpngやlibjpegのインストールでエラーが発生した場合、"apt-cache search libpng"や "apt-cache search libjpeg"でパッケージの後ろの数字を確認しましょう。

2013年12月15日日曜日

AWS上のmicroタイプのUbuntuでswapを利用する

はじめに

AWSで無料で利用できるmicroタイプのUbuntu 12.04 LTS(おそらくは他のLinuxでも)には、Swapが設定されていない。そのため、メモリ使用量の大きいアプリケーションを実行すると、メモリ不足でアプリケーションは落ちてしまう。
$ free -k
             total       used       free     shared    buffers     cached
Mem:        604340     587692      16648          0      44980     375884
-/+ buffers/cache:     166828     437512
Swap:            0          0          0

このままでは不便なので、swapファイルを作成する。

Swapファイルの作成

Swapファイルのサイズだが、実メモリの2倍程度が良いとされているので、1208680KB(約1.2GB)のSwapファイルを作成し、マウントする。
sudo dd if=/dev/zero of=/swapfile bs=1024 count=1208680 #中身が0で埋め尽くされた約1.2GBのファイル作成
sudo mkswap /swapfile #作成したファイルをSwapファイルに変換
sudo swapon /swapfile #作成したSwapファイルをマウント
sudo cp /etc/fstab /etc/fstab.old
sudo sh -c 'echo "/swapfile  swap   swap    defaults   0 0" >> /etc/fstab' #fstabに設定し、自動マウントする

以上でSwapファイルが作成され、マウントされた。また、/etc/fstabにSwapファイルの設定を行ったため、再起動してもSwapファイルはマウントされたままとなる。
free -k
             total       used       free     shared    buffers     cached
Mem:        604340     178708     425632          0       9812      46968
-/+ buffers/cache:     121928     482412
Swap:      1208676          0    1208676