CentOS5.5にPython2.6.6をインストールする。
Pythonは2.*系と3.*系があるが、多くのプログラムはまだ2.*系統で動作します。
Python2.7が最後のメンテナンスリリースが出ていますが、
2.7だとvirtualenvなどでエラーが起きる時があります。
たとえばvirtualenvを必要とするプログラムをインストールするときに起こります。
例:virtualenvでのエラー(Python2.7上でPinax0.7.3をインストールしたときのエラー)
% python scripts/pinax-boot.py ../pinax-env New python executable in ../pinax-env/bin/python Traceback (most recent call last): File "/home/hogehoge/Pinax-0.7.3-bundle/../pinax-env/lib/python2.7/site.py", line 67, in <module> import os File "/home/hogehoge/Pinax-0.7.3-bundle/../pinax-env/lib/python2.7/os.py", line 3 98, in <module> import UserDict File "/home/hogehoge/Pinax-0.7.3-bundle/../pinax-env/lib/python2.7/UserDict.py", line 83, in <module> import _abcoll File "/home/hogehoge/Pinax-0.7.3-bundle/../pinax-env/lib/python2.7/_abcoll.py", l ine 11, in <module> from abc import ABCMeta, abstractmethod File "/home/hogehoge/Pinax-0.7.3-bundle/../pinax-env/lib/python2.7/abc.py", line 8, in <module> from _weakrefset import WeakSet ImportError: No module named _weakrefset ERROR: The executable ../pinax-env/bin/python is not functioning ERROR: It thinks sys.prefix is '/home/hogehoge/Pinax-0.7.3-bundle' (should be '/hom e/hogehoge/pinax-env') ERROR: virtualenv is not compatible with this system or executable
2.7系は_weakrefsetをImportしようとしてエラーが出るようです。(2011年1月3日時点)
2.6系の最終版
2.5から書式が変わっている部分がありますので、
少し枯れてきていて、かつまだ新しい部類に入る2.6系をインストールしてみましょう。
2.6.6
wget http://www.python.org/ftp/python/2.6.6/Python-2.6.6.tgz tar xvzf Python-2.6.6.tgz cd Python-2.6.6 ./configure --enable-shared
Modules/Setupにある。以下の行のコメントを外す。
- (変更前)
#zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz
- (変更後)
zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz
make make install
これでインストール完了です。
このあとは共有ライブラリの設定に入ります。
共有ライブラリの設定
このままpython2.6コマンドを打つと、以下のエラーが出ます。
# python2.6 python2.6: error while loading shared libraries: libpython2.6.so.1.0: cannot open shared object file: No such file or directory
libpython2.6.so.1.0が共有ライブラリに登録されていないとお叱りが出ます。
そのファイルがあるか確認してみましょう。
# find / -name "libpython2.6.so.1.0" /usr/local/src/Python-2.6.6/libpython2.6.so.1.0 /usr/local/lib/libpython2.6.so.1.0
ありますね。
では共有ライブラリに係る次のファイルに「/usr/local/lib」を書き込みましょう。
#vi /etc/ld.so.conf.d/python2.6.conf /usr/local/lib
以上です。
さいごに
ldconfig
とライブラリを認識させてみましょう。
その後python2.6と打ってみてください。
# python2.6 Python 2.6.6 (r266:84292, Jan 3 2011, 14:20:44) [GCC 4.1.2 20080704 (Red Hat 4.1.2-48)] on linux2 Type "help", "copyright", "credits" or "license" for more information.
無事実行できますね。
完了です。
追伸
Python2.6は冒頭のPinax0.7.3とも、バッチリ相性がいいです。