以下のようなことを考えた
% mkdir /tmp/py27
% cd /tmp/py27
% (buildout.cfg + bootstrap.pyを用意)
% cat buildout.cfg
[buildout]
python = python
parts =
python
env
[python]
recipe = zc.recipe.cmmi
url = http://www.python.org/ftp/python/2.7.2/Python-2.7.2.tgz
executable = ${buildout:parts-directory}/python/bin/python2.7
environment =
LDFLAGS=-Wl,-rpath,${buildout:parts-directory}/python/lib
extra_options =
--enable-unicode=ucs4
--enable-shared
--with-threads
[env]
recipe = zc.recipe.egg
eggs =
virtualenv
virtualenvwrapper
interpreter = python
% python bootstrap.py
% bin/buildout
% export WORKON_HOME=/tmp/virtualenvs
% export VIRTUALENVWRAPPER_HOOK_DIR=/tmp/virtualenvs
% export VIRTUALENVWRAPPER_LOG_DIR=/tmp/virtualenvs
## FIXME: クリーンな環境でうまくいくか?
% mkvirtualenv -p /tmp/py27/parts/python/bin/python testenv
% /tmp/virtualenvs/testenv/bin/pip install Flask
% /tmp/virtualenvs/testenv/bin/pip install gunicorn
% /tmp/virtualenvs/testenv/bin/pip install supervisor
% cat myserver.py
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return "<h1>hello!Yes!</h1>"
if __name__ == '__main__':
app.run(debug=True)
% /tmp/virtualenvs/testenv/bin/python myserver.py
* Running on http://127.0.0.1:5000/
* Restarting with reloader
cpでinstallしないほうがいい(暫定手順)
% sudo mkdir /tmp/virtualenvs/testenv/lib/python2.7/site-packages/mypj
% touch /tmp/virtualenvs/testenv/lib/python2.7/site-packages/mypj/__init__.py
% sudo cp myserver.py /tmp/virtualenvs/testenv/lib/python2.7/site-packages/mypj/
本当はdaemonモード
% /tmp/virtualenvs/testenv/bin/gunicorn mypj.myserver:app
CentOS 5.5に入っているpythonのバージョンは、2.4.3と超古いので、 2.7.2の環境を構築したときのメモ
一度2.7.2の環境を作れば、 あとはvirtualenvで環境を切り分ければいいので、 それまでの手順
% mkdir ~/src_python2.7
% cd ~/src_python2.7
% wget http://www.python.org/ftp/python/2.7.2/Python-2.7.2.tar.bz2
% tar -xvjf Python-2.7.2.tar.bz2
% cd Python-2.7.2
% ./configure --enable-shared --with-threads
% make
% sudo make install
% sudo ln -s /opt/python2.7/lib/libpython2.7.so.1.0 /lib64/libpython2.7.so.1.0
% sudo ln -s /usr/local/bin/python2.7 /usr/bin/python2.7
% mkdir ~/src_setuptools
% cd ~/src_setuptools
% wget http://pypi.python.org/packages/2.7/s/setuptools/setuptools-0.6c11-py2.7.egg
% sudo yum install zlib-devel.x86_64
% chmod +x setuptools-0.6c11-py2.7.egg
% sudo ./setuptools-0.6c11-py2.7.egg
% sudo easy_install pip
% sudo pip install virtualenv virtualenvwrapper
virtualenv環境構築。 後で配布することを想定して、デフォルトの".virtualenvs"から"virtualenv"に変更する。
以下を.zshrcに追加
export WORKON_HOME=$HOME/virtualenvs
source /usr/local/bin/virtualenvwrapper.sh
環境を構築
% mkvirtualenv -p /usr/local/bin/python2.7 2.7.2
% workon 2.7.2
とりあえずうまく環境が構築できたが、 複数台環境にpython環境を丸ごと配布したいので、 次はその方法を調べてみる。