[pylucene-dev] debian unstable package of pylucene
vajda at osafoundation.org
Wed Dec 27 11:12:42 PST 2006
On Wed, 27 Dec 2006, Norbert Wojtowicz wrote:
> Not sure about that specific problem, but as far as I know, PyLucene will not
> work from inside Django. The issue is Django uses python threads and PyLucene
> uses PyLucene threads (a small wrapper on top of normal python threads). Even
> though they are just a small wrapper, they are incompatible with each other.
PyLucene.PythonThread is a subclass of Python's threading.Thread that
delegates the starting of the OS thread to libgcj so that it can set it up
with the garbage collector. Internally, there are then two thread instances,
one Python, one Java, that wrap the *same* OS thread. Because a
PyLucene.PythonThread is a subclass of python's threading.Thread it is fully
compatible with regular Python threads and the Python threading APIs.
The problem with running PyLucene in a web framework such as Django is making
sure the threads making PyLucene calls are of the right class. I don't know
enough about Django to say how this is done but this being python and open
source there has got to be a way.
> The only solution would be to grep all the 'import Thread' in Django source
> code and substitute with 'import PythonThread as Thread' (don't recall
> offhand if that's the exact name).
That could work. Others have suggested to simply set threading.Thread to
PyLucene.PythonThread. There may also be a way to configure Django without
having to resort to such tricks.
More information about the pylucene-dev