2011-04-06 142 views
5

我試圖在Ubuntu 10.04上安裝PyLucene 3.0.3。這已被證明相當具有挑戰性,但到目前爲止,我已經:在Ubuntu 10.04上安裝PyLucene 3.0.3

  • 修補setuptools允許建立JCC,如PyLucene文檔中的指示。
  • 內置JCC via:cd pylucene-3.0.3-1/jcc; python setup.py build
  • 通過ant構建Lucene 3.0.3,並將jar安裝到/usr/share/java/lucene-core-3.0.3-dev.jar。請注意,我已經安裝了Ubuntu的默認Lucene的包/usr/share/java/lucene-core-2.9.2.jar也符號鏈接/usr/share/java/lucene-core.jar

我男試圖「製造」 PyLucene,但我得到的錯誤:

cd lucene-java-3.0.3; -Dversion=3.0.3 
/bin/sh: -Dversion=3.0.3: not found 
make: *** [lucene-java-3.0.3/build/lucene-core-3.0.3.jar] Error 127 

文件pylucene-3.0.3-1/DOC /文檔/做的Install.html提及到「編輯Makefile來匹配您的環境」 ,但我不確定這意味着什麼。 makefile似乎包含與我安裝的相同的Lucene版本號。爲了構建PyLucene,我還需要編輯我的makefile嗎?

編輯:取消註釋在生成文件(謝謝Torsten)在Ubuntu 8.10編譯(嚴重,8.10 ?!)的一部分似乎編譯好,但我仍然收到一個錯誤。幾個組件報「BUILD SUCCESSFUL」,但最終版本與結束:

/usr/bin/python -m jcc --shared --jar lucene-java-3.0.3/build/lucene-core-3.0.3.jar --jar lucene-java-3.0.3/build/contrib/snowball/lucene-snowball-3.0.3.jar --jar lucene-java-3.0.3/build/contrib/analyzers/common/lucene-analyzers-3.0.3.jar --jar lucene-java-3.0.3/build/contrib/regex/lucene-regex-3.0.3.jar --jar lucene-java-3.0.3/build/contrib/memory/lucene-memory-3.0.3.jar --jar lucene-java-3.0.3/build/contrib/highlighter/lucene-highlighter-3.0.3.jar --jar lucene-java-3.0.3/build/contrib/queries/lucene-queries-3.0.3.jar --jar build/jar/extensions.jar --package java.lang java.lang.System java.lang.Runtime --package java.util java.util.Arrays java.text.SimpleDateFormat java.text.DecimalFormat java.text.Collator --package java.io java.io.StringReader java.io.InputStreamReader java.io.FileInputStream --exclude org.apache.lucene.queryParser.Token --exclude org.apache.lucene.queryParser.TokenMgrError --exclude org.apache.lucene.queryParser.QueryParserTokenManager --exclude org.apache.lucene.queryParser.ParseException --exclude org.apache.lucene.search.regex.JakartaRegexpCapabilities --exclude org.apache.regexp.RegexpTunnel --python lucene --mapping org.apache.lucene.document.Document 'get:(Ljava/lang/String;)Ljava/lang/String;' --mapping java.util.Properties 'getProperty:(Ljava/lang/String;)Ljava/lang/String;' --rename org.apache.lucene.search.highlight.SpanScorer=HighlighterSpanScorer --version 3.0.3 --module python/collections.py --files 200 --build 
/usr/bin/python: jcc is a package and cannot be directly executed 
make: *** [compile] Error 1 

回答

2

我之前(但沒有在Ubuntu安裝Lucene的默認包)這樣做。我不知道Error 127究竟是什麼,但在我的情況下,它幫助在我的Makefile中將原始NUM_FILES=2設置爲NUM_FILES=200。由於某種原因,當NUM_FILES=2它在內存中創建真正龐大的文件,這是Ubuntu不能處理的。隨着NUM_FILES=200大塊更小,最後安裝爲我工作。對於python 2.6,你還必須更改Makefile中的JCC設置(見下文)。

下面這對我很重要Makefile中的一部分:

# Linux  (Ubuntu 8.10 64-bit, Python 2.5.2, OpenJDK 1.6, setuptools 0.6c9) 
PREFIX_PYTHON=/usr 
ANT=ant 
PYTHON=$(PREFIX_PYTHON)/bin/python 
JCC=$(PYTHON) -m jcc.__main__ --shared 
NUM_FILES=200 
+0

對不起,沒看到你又增加了'__main__'。完美編譯。謝謝。 – Cerin 2011-04-06 12:59:50

+0

沒問題。很高興我能幫上忙。安裝PyLucene應該會更容易。我總是花半天的時間。 :/ – 2011-04-07 04:05:27