Can I use lucene directly from python, preferably without using a binary module?
I am interested mainly in read access -- being able to perform queries from python over existing lucene indexes.
PyLucene is a Python wrapper around Lucene. Therefore, you have to install Lucene as well, and its installation may be a bit complex (especially on Windows!)
You can't use Lucene itself from CPython without using a binary module, no.
You could use it directly from Jython, or you could use a Python port of Lucene, eg. Lupy (though Lupy is no longer under development).
If you're prepared to relax your non-binary requirement, PyLucene is a wrapper that embeds Java Lucene into Python.
This similar question offers some options: Is there a pure Python Lucene?