On Tue, 23 Mar 2010, Bill Janssen wrote:
Andi Vajda <va...@apache.org> wrote:
The way extensions are distributed on Windows makes it even worse.
Building an extension with --wininst (or any other way) does not package
it with the JCC it was compiled with. And nothing in the package name
tells you whether it was shared or non-shared.
If you run an extension in shared mode with a different version of jcc
than it was compiled against, you'll have crashes and other
troubles. You must distribute jcc along with your extension in shared
mode. It should be made a dependency, especially on Windows where
'jcc' is explicitely imported to effect the Path hack for finding
jcc.dll.
I refuse to believe that egg dependencies work in the real world. It
seems to me that the right thing to do here is to have the bdist package
the JCC package with the PyLucene package, in the case where they are
built shared. That way you know that the PyLucene Windows installer for
your platform will work.
A patch fixing this would be welcome.
In non-shared mode, the jcc runtime necessary to run your extension is
included in the extension distribution.
Right, and it sounds like it should be included in the shared mode, too.
On Windows, more than the code is necessary. The whole egg is required since
'jcc' is imported explicitely at extension import time. Not so on
non-windows.
Andi..