I'm updating my build scripts for Linux.  It's a bit tricky, because I'm
installing all the Python modules in a separate spot,
/opt/uplib-1.7.9/lib[64]/python[2.5,2.6,2.7]/[site,dist]-packages/,
depending on the Linux distro and machine architecture.  Call it SITEDIR.
I'm trying not to affect the user's installed non-UpLib Python modules.

To build PyLucene properly, I install a patched version of setuptools in
that location, as well, and use that version of setuptools to build
PyLucene.  It's tricky, because setuptools out of the box doesn't seem
to grok the lib/lib64 and site/dist differences, and usually tries to
install in the wrong place.  So I patch the setuptools sources, then
build an egg (python setup.py bdist_egg), then run "sh" on the egg,
specifying the --install-dir switch, to get setuptools into the correct
spot.

Then I build JCC, and install it into SITEDIR.

Then I try to build PyLucene.  That's where I run into difficulty.  I
setenv PYTHONPATH to SITEDIR, and invoke "make" like this (in this case):

export python=/usr/bin/python
export PYTHONPATH=${SITEDIR}
export JCCCOMMAND="${python} -m jcc"
make PREFIX_PYTHON=/usr ANT=ant PYTHON=${python} JCC="${JCCCOMMAND}" NUM_FILES=1

which gives me this:

/usr/bin/python -m jcc --shared --jar 
lucene-java-2.9.1/build/lucene-core-2.9.1.jar --jar 
lucene-java-2.9.1/build/contrib/snowball/lucene-snowball-2.9.1.jar --jar 
lucene-java-2.9.1/build/contrib/analyzers/common/lucene-analyzers-2.9.1.jar 
--jar lucene-java-2.9.1/build/contrib/regex/lucene-regex-2.9.1.jar --jar 
lucene-java-2.9.1/build/contrib/memory/lucene-memory-2.9.1.jar --jar 
lucene-java-2.9.1/build/contrib/highlighter/lucene-highlighter-2.9.1.jar --jar 
lucene-java-2.9.1/build/contrib/queries/lucene-queries-2.9.1.jar --jar 
lucene-java-2.9.1/build/contrib/instantiated/lucene-instantiated-2.9.1.jar 
--jar build/jar/extensions.jar --package java.lang java.lang.System 
java.lang.Runtime --package java.util java.util.Arrays 
java.text.SimpleDateFormat --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.Query
 ParserTokenManager --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;' --sequence 
org.apache.lucene.search.Hits 'length:()I' 
'doc:(I)Lorg/apache/lucene/document/Document;' --rename 
org.apache.lucene.search.highlight.SpanScorer=HighlighterSpanScorer --version 
2.9.1 --module python/collections.py --files 1 --build 
Traceback (most recent call last):
  File "/usr/lib/python2.5/runpy.py", line 95, in run_module
    filename, loader, alter_sys)
  File "/usr/lib/python2.5/runpy.py", line 52, in _run_module_code
    mod_name, mod_fname, mod_loader)
  File "/usr/lib/python2.5/runpy.py", line 32, in _run_code
    exec code in run_globals
  File 
"/usr/lib/python2.5/site-packages/JCC-1.9-py2.5-linux-i686.egg/jcc/__init__.py",
 line 28, in <module>
    cpp.jcc(sys.argv)
  File 
"/usr/lib/python2.5/site-packages/JCC-1.9-py2.5-linux-i686.egg/jcc/cpp.py", 
line 340, in jcc
    raise ValueError, "Invalid argument: %s" %(arg)
ValueError: Invalid argument: --rename
make: *** [compile] Error 255

You'll notice that what's happening is that I'm not loading the JCC (2.4.1) from
SITEDIR; instead, I'm loading an old one (1.9) from the system location.  Why
is this?  I thought it might be due to setuptools, but I can't reproduce this

Reply via email to