Andi Vajda <[email protected]> wrote:
>
> On Wed, 7 Dec 2011, Bill Janssen wrote:
>
> > This part of the PyLucene Makefile is still screwed up:
> >
> > # Mac OS X 10.5 (32-bit Python 2.5, Java 1.5)
> > #PREFIX_PYTHON=/usr
> > #ANT=ant
> > #PYTHON=$(PREFIX_PYTHON)/bin/python
> > #JCC=$(PYTHON) -m jcc --shared
> > #NUM_FILES=4
> >
> > The way that jcc/__init__.py is now written, there's no way to invoke it
> > with "-m jcc", even on Python versions where that's supposed to work.
> > The last line, "_jcc.CLASSPATH = CLASSPATH" will always fail, because "_jcc"
> > isn't imported anywhere.
>
> I'm a bit confused about how this can or cannot work.
> For whatever it's worth, with Python 2.7, running with -m jcc works
> fine here.
>
> That being said, I don't see how this statement:
> _jcc.CLASSPATH = CLASSPATH
>
> can work at all since there is nothing visibly importing _jcc.
> Something puts it there, though, because it works.
>
> Can you shed some light on this ?
>
> ... debugging a bit further ... via pdb ...
>
> Apparently, the statement:
> from _jcc import initVM
>
> causes the _jcc symbol to appear.
That seems broken. Certainly shouldn't work that way.
> This could be a side-effect of setuptools. I vaguely remember someone
> saying that this didn't work with distutils only.
Yes, I could see that. setuptools plays all kinds of games to achieve
its ends, some of them broken. Thank heaven for distutils2/packaging.
> If you can reproduce the failure, does adding a line before if __name__ ...:
> import _jcc
>
> solve the problem for you ?
No, I get an import error there -- apparently the relative import isn't
seen/found:
Traceback (most recent call last):
File
"/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/runpy.py",
line 95, in run_module
filename, loader, alter_sys)
File
"/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/runpy.py",
line 52, in _run_module_code
mod_name, mod_fname, mod_loader)
File
"/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/runpy.py",
line 32, in _run_code
exec code in run_globals
File
"/Library/Python/2.5/site-packages/JCC-2.12-py2.5-macosx-10.5-i386.egg/jcc/__init__.py",
line 31, in <module>
import _jcc
ImportError: No module named _jcc
make: *** [compile] Error 255
But using
import jcc._jcc
does work. Wonder if that works on Python 2.7, too?
Bill