ホーム > CentOS >

Python環境構築

Python2.7.5のインストール

[ -e /tmp/work/python ] || mkdir -p /tmp/work/python
cd /tmp/work/python

wget http://www.python.org/ftp/python/2.7.5/Python-2.7.5.tar.bz2
tar jxf Python-2.7.5.tar.bz2
pushd Python-2.7.5
./configure --enable-shared --prefix=/usr/local
make
sudo make install
popd

setuptools, pipのインストール

wget https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py
sudo python ez_setup.py
sudo easy_install pip

supervisorのインストールと設定

supervisorのインストール

sudo pip install supervisor
sudo mkdir /var/log/supervisor

supervisorをインストールするとecho_supervisord_confコマンドが使用できるようになる。 このコマンドを実行するとsupervisord.confの雛形が標準出力に出力されるので、これをリダイレクトしてファイルに保存し、テキストエディタで適宜編集したあと、/etc/supervisor/supervisord.confに保存する。

sudo mkdir /etc/supervisor
sudo mkdir /etc/supervisor/{conf-available,conf-enabled}
echo_supervisord_conf > supervisord.conf
# vim supervisord.conf
sudo cp supervisord.conf /etc/supervisor/supervisord.conf
sudo chmod 600 /etc/supervisor/supervisord.conf

設定ファイルの記述方法に関しては このページ を参照。

設定ファイル中のパスワードは

password={SHA}SHA1のハッシュ文字列

とすることによって、パスワードを平文で設定ファイルに保存するのを避ける事ができる。また、SHA1のハッシュ文字列は、sha1sumコマンドで生成することができる。

最後に、supervisordの起動スクリプトをインストールする

wget -O supervisord https://gist.github.com/saitodev/6208818/raw/supervisord
sudo cp supervisord /etc/rc.d/init.d/supervisord
sudo chmod 755 /etc/rc.d/init.d/supervisord
sudo /sbin/chkconfig --add supervisord
sudo /sbin/chkconfig supervisord on

supervisord.confの設定例

supervisord.confをダウンロードしてパスワードを設定して、/etc/supervisor/supervisord.confにインストール

sudo mkdir -p /etc/supervisor/{conf-available,conf-enabled}
echo -n "password> "
passwd_sha1=$(/bin/bash -c 'read -s passwd; echo -n $passwd | sha1sum | cut -f1 -d" "')
echo
curl https://gist.github.com/saitodev/6223833/raw/supervisord.conf 2> /dev/null \
    | sed -e "/^password=/c password={SHA}$passwd_sha1" \
    | sudo tee /etc/supervisor/supervisord.conf > /dev/null
sudo chmod 600 /etc/supervisor/supervisord.conf

supervisordの起動スクリプト

gunicornのインストールと設定

sudo pip install gunicorn
# gunicornのログとpidファイルのためのディレクトリを作成
sudo mkdir /var/log/gunicorn
sudo mkdir /var/run/gunicorn
# 作成したディレクトリの所有者・権限を適宜変更する

その他のライブラリのインストール

既に構築済みの開発環境で、

pip freeze > requirements.txt

を実行すると、現在インストールされているパッケージの名前とバージョンのリストが取得できる。 このファイルを別のサーバ等に持って行き、

sudo pip install -r requirements.txt

を実行すると、元の環境と全く同じバージョンのパッケージをインストールすることができる。

PyPyのインストール

PyPyのダウンロードページ から入手できるバイナリは、依存しているライブラリのバージョンの関係で、CentOSでは動作しない。 そのため、ソースコードからPyPyをビルドする。 PyPyのコンパイルには多量のメモリ(4Gバイト以上を推奨)のメモリが必要なので、 本番サーバーではなくローカルの仮想マシン等で行うのが賢明だろう。

  1. 必要なライブラリのインストール

    sudo yum install \
      gcc make python-devel libffi-devel sqlite-devel pkgconfig \
      zlib-devel bzip2-devel ncurses-devel expat-devel \
      openssl-devel gc-devel
    sudo pip install greenlet sphinx
    
  2. PyPyのビルド

    [ -e /tmp/work/pypy ] || mkdir -p /tmp/work/pypy
    cd /tmp/work/pypy
    
    wget https://bitbucket.org/pypy/pypy/downloads/pypy-2.1-src.tar.bz2
    tar jxf pypy-2.1-src.tar.bz2
    cd pypy-2.1-src
    python rpython/bin/rpython -Ojit pypy/goal/targetpypystandalone.py
    
  3. tarballの作成

    mkdir pypy-2.1 pypy-2.1/bin
    cp pypy-c pypy-2.1/bin/pypy
    cp -r LICENSE README.rst include lib-python lib_pypy site-packages pypy-2.1/
    tar jcf pypy-2.1.tar.bz2 pypy-2.1
    
  4. /opt等にPyPyをインストールする。

    cd /opt
    sudo tar jxf path/to/pypy-2.1.tar.bz2
    

参考URL