このBlogは移転しました。今後は aish.dev を御覧ください。

PyLuceneをWindowsでビルド

必要なもの

  • PyLuceneこれがなければ始まらない。ソースアーカイブをダウンロードしておいてください。
  • Apache AntPyLuceneのビルドに使用します。バイナリをダウンロードして、適当にインストールしてください。私は c:\Program Files\apache-antにインストールしました。
  • Cygwin
    インストールする際、Develカテゴリの SubVersion と make を必ず選択してください。

環境設定

まず、PATHをJavaランタイムのjvm.dllがあるディレクトリとJDKcygwinのbinディレクトリに通しておきます。私の場合だと

C:\Program Files\Java\jdk1.6.0_14\jre\bin\client;C:\Program Files\Java\jdk1.6.0_14\bin;c:\cygwin\bin;

を追加しました。

次に環境変数JAVA_HOMEを設定します。私の環境では

JAVA_HOME=C:\Program Files\Java\jdk1.6.0_14

としました。

JCCのビルド

まず、JavaライブラリのC++インターフェースを作成する JCC モジュールをビルドします。

1. setup.pyを修正する

\jcc にある setup.py を環境にあわせて修正します。私の環境では次のように修正しました。

Index: setup.py
===================================================================
--- setup.py    (revision 820678)
+++ setup.py    (working copy)
@@ -39,7 +39,7 @@
'ipod': '/usr/include/gcc',
'linux2': '/usr/lib/jvm/java-6-openjdk',
'sunos5': '/usr/jdk/instances/jdk1.6.0',
-    'win32': 'o:/Java/jdk1.6.0_02',
+    'win32': 'C:/Program Files/Java/jdk1.6.0_14',
}
if 'JCC_JDK' in os.environ:
JDK[platform] = os.environ['JCC_JDK']
@@ -61,7 +61,7 @@
'linux2': ['-fno-strict-aliasing', '-Wno-write-strings'],
'sunos5': ['-features=iddollar',
'-erroff=badargtypel2w,wbadinitl,wvarhidemem'],
-    'win32': [],
+    'win32': ["/EHsc"],
}

# added to CFLAGS when JCC is invoked with --debug

2. ビルド&インストール

あとは普通のPythonモジュールと同様に

cd <pylucene>\jcc
python setup.py install

で完了です。

PyLuceneのビルド

1. Makefileを修正する

環境に合わせて、Makefileを修正します。私の環境では次のように修正しました。

Index: Makefile
===================================================================
--- Makefile    (revision 820678)
+++ Makefile    (working copy)
@@ -105,12 +105,14 @@
#NUM_FILES=2

# Windows   (Win32, Python 2.5.1, Java 1.6, ant 1.7.0)
-#PREFIX_PYTHON=/cygdrive/o/Python-2.5.2/PCbuild
-#ANT=JAVA_HOME=o:\Java\jdk1.6.0_02 /cygdrive/o/java/apache-ant-1.7.0/bin/ant
-#PYTHON=$(PREFIX_PYTHON)/python.exe
-#JCC=$(PYTHON) -m jcc --shared
-#NUM_FILES=2
+PREFIX_PYTHON=/cygdrive/c/Python26
+JAVA_HOME=C:\Progra~1\Java\jdk1.6.0_14
+ANT=/c/Progra~1/apache-ant/bin/ant.bat
+PYTHON=$(PREFIX_PYTHON)/python.exe
+JCC=$(PYTHON) -m jcc.__main__ --shared
+NUM_FILES=2

+
#
# No edits required below
#

2. ビルド&インストール

cd <pylucene>
make
make install

で完了です。インストールしたら

make test

でちゃんと動作するか、確認してみましょう。