プログラムの2行目あたりにこのCodec設定を記述します。
# -*- coding: euc_jp # -*- coding: Shift_JIS # -*- coding: UTF-8
注意)Python2.7系は、Yumが動かなくなりますので、2.4を残しておいた方がよい場合があります。
その場合、/usr/bin/yum の起動 python のバージョンを古いものを指定しておくと良い。
#!/usr/bin/python2.6
# unset PYTHONHOME <- なぜか2.5は再install時に環境変数があるとinstallで転ける # cd /usr/local/src # wget http://python.org/ftp/python/2.7.3/Python-2.7.14.tgz # tar zxvf Python-2.7.14.tgz # cd Python-2.7.14/Modules/zlib # ./configure && make && make install # cd ../.. # ./configure --enable-shared # make # make install
setuptoolsをインストールする。
# wget https://bootstrap.pypa.io/ez_setup.py -O - | python # easy_install pip
# emacs /etc/ld.so.conf.d/python2.7.conf /usr/local/lib/python2.7/ # ldconfig <- ldconfigを実行してLIBの再設定
キャッシュにライブラリが登録されたか確認
# ldconfig -p | grep python
# rm /usr/bin/python # ln -s /usr/local/bin/python /usr/bin/python
一応、動作確認
# python >> import os >> exit()
2.4系ではsoファイルを必要としないように./configureオプションを選択します。
# cd /usr/local/src # wget http://www.python.org/ftp/python/2.4.5/Python-2.4.5.tgz # ./configure # make # make install
# ln -s /usr/local/bin/python2.4.5 /usr/bin/python2.4.5
一応、動作確認
# python2.4.5 >> import os >> exit() # python2.4.5 -V < version check
mod_pythonのインストール
mod_pythonのマニュアル
mod_pythonの公式ページ
このページの添付に、PDFのマニュアルがあります?
# wget http://archive.apache.org/dist/httpd/modpython/mod_python-3.3.1.tgz # tar zxvf mod_python-3.3.1.tgz # cd mod_python-3.3.1 # ./configure --with-apxs=/usr/local/apache2/bin/apxs --with-python=/usr/local/bin/python # make # make install
もしapache起動時に「**.so : cannot restore segment prot after reloc: Permission denied」というメッセージがでたら、以下のコマンドを実行して、SELinuxの設定を変更する。
# chcon -c -v -R -u system_u -r object_r -t textrel_shlib_t **.so
mod_pythonの src の中にある「connobject.c」には、バグがあり以下の修正が必要
while ((bytes_read < len || len == 0) && !(b == APR_BRIGADE_SENTINEL(b) || APR_BUCKET_IS_EOS(b) || APR_BUCKET_IS_FLUSH(b))) {
この b を、下記のように bb にする
!(b == APR_BRIGADE_SENTINEL(bb) ||
# emacs /usr/local/apache2/conf/extra/python.conf # # Mod Python load # LoadModule python_module modules/mod_python.so
apacheでは、mod_pythonなどの古いインターフェイスの代わりに、より洗練されたmod_wsgi(Web Server Gateway Interface)を提供している。
# wget http://modwsgi.googlecode.com/files/mod_wsgi-3.3.tar.gz # tar zxvf mod_wsgi-3.3.tar.gz # cd mod_wsgi-3.3 # ./configure --with-apxs=/usr/local/apache2/bin/apxs --with-python=/usr/local/bin/python # make # make install
ディレクティブ | 概要 |
WSGIReloadMechanism Process | DaemonProcessで起動されるwsgiスクリプト (index.wsgi など) のファイル内容が変更されると、自動的にpythonが再起動して、インタプリタ環境が再起動される。 |
WSGIDaemonProcess | DaemonProcessの起動に関する各種設定を行う。グループ毎の指定が可能 |
WSGIProcessGroup | プロセスのグループ名を指定 |
# wget http://nchc.dl.sourceforge.net/sourceforge/cxx/pycxx-5.4.1.tar.gz # tar zxvf pycxx-5.4.1.tar.gz # cd pycxx-5.4.1 # python setup.py build # python setup.py istall
# python <- Pythonを軌道 >>> import sys <- Sys ライブラリを読み込む >>> sys.path <- ライブラリのサーチパスを表示する >>> sys.exec_path <- 実行パスを表示する >>> from distutils.sysconfig import get_python_lib >>> print get_python_lib() <- ライブラリの表示
Python専用のコマンドシェルであり、Python上でプログラムをするには非常に軽くて軽快に動作する。ECLIPSEなどのIDEよりもiPythonとさくらエディッタの組み合わせがお勧めと考える。
# wget http://ipython.scipy.org/dist/ipython-0.9.1.tar.gz # tar zxvf ipython-0.9.1.tar.gz # cd ipython-0.9.1 # python setup.py install
# wget http://pypi.python.org/packages/source/d/distribute/distribute-0.6.8.tar.gz # tar zxvf distribute-0.6.8.tar.gz # cd distribute-0.6.8 # python setup.py install
setuptoolsは、python eggなど優れたインストール環境を提供するツールです。多くのpythonアプリで利用されている。
公式サイト
Installl
# wget http://pypi.python.org/packages/source/s/setuptools/setuptools-0.6c11.tar.gz # tar zxvf setuptools-0.6c11.tar.gz # cd setuptools-0.6c11 # python setup.py install
# wget http://docutils.sourceforge.net/docutils-snapshot.tgz # tar zxvf # cd docutils # python setup.py install
easy_install http://docutils.sourceforge.net/docutils-snapshot.tgz の方が簡単。
主に、python のバージョンを2.4 から 2.5以上のバージョンにアップさせると、発生するトラブル。yum のプログラムが 2.4 のpythonライブラリにしか入っていないためだ。よって、まずは、/usr/bin/yum に記載されている python のバージョンを 2.4 にする。
#!/usr/bin/python -> #!/usr/bin/python2.4
ほかにも、なぜか libepat.so.0 が無いと言い出す場合があるので、念のために下記の設定を行う。
# vi /etc/ld.so.conf.d/local.conf /usr/local/lib # ldconfig
# export LD_LIBRARY_PATH=/usr/local/lib
その後、念の為にyumのキャシュをクリアする。
# rm -rf /var/lib/rpm/__db.* # rpm --rebuilddb # yum clean all # yum makecache
Expatのバージョンが違っている場合にでる可能性がある。