読者です 読者をやめる 読者になる 読者になる

(第2回)(第3回)Zope/Plone開発勉強会

python zope/plone pylucene

(第2回)Zope/Plone開発勉強会(第3回)Zope/Plone開発勉強会に参加してきました。

第2回(先月)のときは、PyLucene のビルドができない、原因が分からないとはまってしまい、ブログを書けるほどの成果がなかったので2ヶ月まとめて書きます(^ ^;;

タイムテーブルは以下のような感じです。

  • 11:00-11:30 自己紹介とか
  • 11:30-12:00 やること決めたり準備とか
  • 12:00-13:00 昼食
  • 13:00-18:00 もくもくと開発
  • 18:00-19:00 成果発表(できたとこまで)
  • 19:00-19:30 後片付け
  • 19:30- 打ち上げ(いける人で)


前回は、Zope と Plone を CentOS 5.3 へインストールしました。今回は PyLucenePlone を連携させることを目的に、先ずは PyLucene のインストールにチャレンジしました。

PyLucene のソースをダウンロードしてきてビルドします。ビルドするには、JDK(Java Development Kit) や Ant が必要になります。CentOSリポジトリにある ant-1.6.5-2jpp.2 だと、なぜかビルドに失敗して困っていました。すると id:ytakeuch さんが最新の Ant だったらビルド出来たよとあっさりと解決してくれました。感謝です。そこで Ant パッケージだけ最新の ant-1.7.1 を持ってきて CentOS 用にリビルドしました。Ant のインストールはこちらをお使いください。

バイナリ RPM(i386): ant-1.7.1-11.1.centos.i386.rpm 直
ソース RPM: ant-1.7.1-11.1.centos.src.rpm 直

ソースのダウンロードと環境構築
※ 他にも必要なパッケージも幾つかインストールしています

# wget http://ftp.riken.jp/net/apache/lucene/pylucene/pylucene-2.4.1-2-src.tar.gz
# yum -y install gcc43-c++ gcc-c++ ava-1.6.0-openjdk \
  java-1.6.0-openjdk-devel python-devel python-setuptools subversion
# rpm -ivh ant-1.7.1-11.1.centos.i386.rpm

PyLucene のビルド

ソースを展開します
# cd ~/pylucene
# tar zxvf pylucene-2.4.1-2-src.tar.gz

JCC のビルド
# cd pylucene-2.4.1-2/jcc
# pwd
/root/pylucene/pylucene-2.4.1-2/jcc
# patch -d /usr/lib/python2.4/site-packages -Nup0 < /root/pylucene/pylucene-2.4.1-2/jcc/jcc/patches/patch.43
patching file setuptools/extension.py
patching file setuptools/command/build_ext.py
# vi setup.py
 @@ -37,7 +37,7 @@
  JDK = {
      'darwin': '/System/Library/Frameworks/JavaVM.framework/Versions/Current',
      'ipod': '/usr/include/gcc',
 -    'linux2': '/usr/lib/jvm/java-6-openjdk',
 +    'linux2': '/usr/lib/jvm/java-1.6.0-openjdk',
      'sunos5': '/usr/jdk/instances/jdk1.6.0',
      'win32': 'o:/Java/jdk1.6.0_02',
  }
# python setup.py build
# python setup.py install
Installed /usr/lib/python2.4/site-packages/JCC-2.3-py2.4-linux-i686.egg
Processing dependencies for JCC==2.3

PyLucene のビルド
# cd ../
# vi Makefile
 @@ -70,11 +70,11 @@
  # Linux     (Ubuntu 6.06, Python 2.4, Java 1.5, no setuptools)
 -#PREFIX_PYTHON=/usr
 -#ANT=ant
 -#PYTHON=$(PREFIX_PYTHON)/bin/python
 -#JCC=$(PYTHON) $(PREFIX_PYTHON)/lib/python2.4/site-packages/jcc/__init__.py
 -#NUM_FILES=2
 +PREFIX_PYTHON=/usr
 +ANT=ant
 +PYTHON=$(PREFIX_PYTHON)/bin/python
 +JCC=$(PYTHON) $(PREFIX_PYTHON)/lib/python2.4/site-packages/JCC-2.3-py2.4-linux-i686.egg/jcc/__init__.py
 +NUM_FILES=2
# make
svn export -r HEAD http://svn.apache.org/repos/asf/lucene/java/tags/lucene_2_4_1 lucene-java-2.4.1
(snip)
build of complete
# make install
Installed /usr/lib/python2.4/site-packages/lucene-2.4.1-py2.4-linux-i686.egg
Processing dependencies for lucene==2.4.1

Python から拡張モジュールがみえることを確認します。

# python
Python 2.4.3 (#1, Jul 27 2009, 17:57:39) 
[GCC 4.1.2 20080704 (Red Hat 4.1.2-44)] on linux2
>>> import jcc
>>> dir(jcc)
['CLASSPATH', '__builtins__', '__doc__', '__file__', 
 '__name__', '__path__', '_jcc', 'initVM', 'os', 'sys']
>>> import lucene
>>> dir(lucene)
['AbstractCollection', 'AbstractField', 'AbstractList',,,
(snip)

リファレンス:
2009-09-05 - 人は歴史を創り出し、人は歴史を語り継ぐ

広告を非表示にする