Flaskでも試そうと思ったけど、CentOS 5.5のPythonは2.4.3だったりして寂しい感じだったのでいろいろ環境整備からして、ようやく環境作り終わった。
[root@shrkw-rad]# python -V Python 2.4.3
Python2.7のインストール
EPELのyumに2.6系のPythonがあるけど、既存のを汚染しないかよくわからなかったので、ソースコードからコンパイルしてみる。Pythonのコンパイルするのって初めてだ。
[root@shrkw-rad]# wget http://python.org/ftp/python/2.7.1/Python-2.7.1.tar.bz2 [root@shrkw-rad]# tar xjf Python-2.7.1.tar.bz2 [root@shrkw-rad]# cd Python-2.7.1 [root@shrkw-rad]# ./configure --prefix=/opt/python2.7 --enable-shared [root@shrkw-rad]# make [root@shrkw-rad]# make install
動くか確認。
[root@shrkw-rad]# /opt/python2.7/bin/python -V /opt/python2.7/bin/python: error while loading shared libraries: libpython2.7.so.1.0: cannot open shared object file: No such file or directory
動かない!><
ライブラリが足りんとのことなので、lddでみてみる。
[root@shrkw-rad]# ldd /opt/python2.7/bin/python linux-gate.so.1 => (0x00fef000) libpython2.7.so.1.0 => not found libpthread.so.0 => /lib/libpthread.so.0 (0x00b82000) libdl.so.2 => /lib/libdl.so.2 (0x00b7b000) libutil.so.1 => /lib/libutil.so.1 (0x02f96000) libz.so.1 => /usr/lib/libz.so.1 (0x00bc8000) libm.so.6 => /lib/libm.so.6 (0x00b9d000) libc.so.6 => /lib/libc.so.6 (0x00a20000) /lib/ld-linux.so.2 (0x009fc000)
libpython2.7.so.1.0が足りない!
コンパイルして作成されはしているので、シンボリックリンクを張る。
[root@shrkw-rad]# ln -s /opt/python2.7/lib/libpython2.7.so.1.0 libpython2.7.so.1.0 [root@shrkw-rad]# /opt/python2.7/bin/python -V Python 2.7.1
動いた!
virtualenvのインストール
ついでにvirtualenvwrapperも入れる。
[root@shrkw-rad]# easy_install virtualenv [root@shrkw-rad]# easy_install virtualenvwrapper
virtualenvwrapperのコマンドを使えるように設定。
[root@shrkw-rad]# export WORKON_HOME=/opt/virtualenv [root@shrkw-rad]# source virtualenvwrapper.sh
仮想環境作成
2.7系のPythonを使うように。
[root@shrkw-rad]# mkvirtualenv --python=/opt/python2.7/bin/python2.7 myvenv Running virtualenv with interpreter /opt/python2.7/bin/python2.7 New python executable in myvenv/bin/python2.7 Also creating executable in myvenv/bin/python Installing setuptools............................done. virtualenvwrapper.user_scripts creating /opt/virtualenv/myvenv/bin/predeactivate virtualenvwrapper.user_scripts creating /opt/virtualenv/myvenv/bin/postdeactivate virtualenvwrapper.user_scripts creating /opt/virtualenv/myvenv/bin/preactivate virtualenvwrapper.user_scripts creating /opt/virtualenv/myvenv/bin/postactivate virtualenvwrapper.user_scripts creating /opt/virtualenv/myvenv/bin/get_env_details
できたっぽい!
確認してみよう。
(myvenv)[root@shrkw-rad]# python -V Python 2.7.1
やったー。
(myvenv)[root@shrkw-rad]# easy_install Flask
確認する。
(myvenv)[root@shrkw-rad]# python Python 2.7.1 (r271:86832, Jan 21 2011, 20:07:19) [GCC 4.1.2 20080704 (Red Hat 4.1.2-48)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import Flask Traceback (most recent call last): File "<stdin>", line 1, in <module> ImportError: No module named Flask >>> from flask import Flask >>>
ちゃんと入ってる!!
virtualenvを抜ける。
(myvenv)[root@shrkw-rad]# deactivate
元環境を汚染してないか確認。
[root@shrkw-rad]# python Python 2.4.3 (#1, Nov 11 2010, 13:34:43) [GCC 4.1.2 20080704 (Red Hat 4.1.2-48)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> from flask import Flask Traceback (most recent call last): File "<stdin>", line 1, in ? ImportError: No module named flask >>>
大丈夫でしたー。
というわけで環境構築完了!!
あとはiPythonとPipを使うようにせねば!!!