On Nov 29, 2010, at 9:45, Bill Janssen <jans...@parc.com> wrote:

Andi Vajda <va...@apache.org> wrote:

I just tried this myself

By "this", do you mean 64-bit Windows 7, or Python 2.7?

Both. 64 bit Windows 7, with Python 2.7 and Java 1.6.0_22 both 32-bit.


and it seems that with Python 2.7 __name__ is
never equal to '__main__' in jcc's __init__.py. So, jcc.__main__ is
never imported implicitely from __init__.py and hence --find-jvm-dll
is ineffective.

I moved the --find-jvm-dll trickery to __init__.py and that seems to
solve the problem. Of course, this is all masked if the PATH already
contains the JRE directories.

Andi..

Thanks. Though I thought that the --find-jvm-dll switch only worked if it was explicitly specified, which I wasn't doing. So while that's one Python 2.7 issue, I don't think that's the problem I was seeing, right?

Yes, it only kicks in if used explicitely but didn't work. Putting the jre/bin and jre/bin/client dirs on PATH also works around the problem but masks the --find-jvm-dll problem.

I'm going to go back to 32-bit XP, and get things working with Python
2.7 on that platform. Once I have that, I'll go back to 64-bit Windows 7.

I don't think that makes any difference. I think (but I could be wrong) that the issue is with Python 2.7 and the value of __name__ in __init__.py when invoking a package via -m.

Andi..


Bill

I got a brand-new Windows 7 machine, and thought I'd try building
PyLucene with a newer version of Python, 2.7, the 32-bit version.

I also had to move to setuptools-0.6c11, because 0.6c9 doesn't seem to
work with Python 2.7.  Using 32-bit Java 6.0_22.

But I can't get JCC to run here:

sh-3.1$ which jcc.dll
/c/Python27/Lib/site-packages/JCC-2.6-py2.7-win32.egg/jcc.dll
sh-3.1$ which jvm.dll
/c/Program Files (x86)/Java/jre6/bin/client/jvm.dll
sh-3.1$ python -m jcc.__main__ --help
c:\Python27\python.exe: DLL load failed: The specified module could not be found.
sh-3.1$

sh-3.1$ python -c 'import os; print os.environ.get("PATH")'
c:\Windows\system32;c:\Windows;c:\Windows\System32\Wbem;c: \Windows\System32\WindowsPowerShell\v1.0\;C:\MinGW\msys \1.0\bin;C:\MinGW\bin;c:\Python27;c:\Program Files\apache- ant-1.8.1\bin;c:\Program Files (x86)\Java\jre6\bin\client;c: \Python27\Lib\site-packages\JCC-2.6-py2.7-win32.egg

It seems to build and install OK, but when I run python in verbose mode,
I see

import jcc # directory c:\Python27\lib\site-packages\jcc-2.6- py2.7-win32.egg\jcc # c:\Python27\lib\site-packages\jcc-2.6-py2.7-win32.egg\jcc \__init__.pyc matches c:\Python27\lib\site-packages\jcc-2.6- py2.7-win32.egg\jcc\__init__.py import jcc # precompiled from c:\Python27\lib\site-packages \jcc-2.6-py2.7-win32.egg\jcc\__init__.pyc # c:\Python27\lib\site-packages\jcc-2.6-py2.7-win32.egg\jcc \config.pyc matches c:\Python27\lib\site-packages\jcc-2.6-py2.7- win32.egg\jcc\config.py import jcc.config # precompiled from c:\Python27\lib\site- packages\jcc-2.6-py2.7-win32.egg\jcc\config.pyc c:\Python27\python.exe: DLL load failed: The specified module could not be found.

So, what's in jcc/config.py?  Here's what's in it:

INCLUDES=['C:\\Program Files (x86)\\Java\\jdk1.6.0_22\ \include', 'C:\\Program Files (x86)\\Java\\jdk1.6.0_22\\include\ \win32']
CFLAGS=['-fno-strict-aliasing', '-Wno-write-strings']
DEBUG_CFLAGS=['-O0', '-g', '-DDEBUG']
LFLAGS=['-LC:\\Program Files (x86)\\Java\\jdk1.6.0_22\\lib', '- ljvm']
IMPLIB_LFLAGS=['-Wl,--out-implib,%s']
SHARED=True
VERSION="2.6"

Any ideas about what's going wrong? I suspect those parentheses in the
path to the jvm, myself.

Bill


Reply via email to