Я никогда не использовал pylucene в Django, хотя initVM()
должен вызываться в файле, который в значительной степени загружается при запуске сервера Django (settings.py
было бы хорошим местом).
О attachCurrentThread
: Вопрос в том, где вы используете модуль lucene
.Если это в views.py, то, конечно, сделайте это в views.py.Хотя я думаю, что вы не должны делать это при каждом вызове функции.Если вы используете основанные на классах общие представления Django, вы можете сохранить среду VM в переменной, специфичной для объекта.Вы пробовали это в глобальной области views.py?
Также имейте в виду, что при вызове attachCurrentThread
всегда необходимо выполнить два шага:
vm_env = lucene.getVMEnv()
vm_env.attachCurrentThread()
Добавление (см. комментарии ниже):
Я думаю, это зависит от того, как вы импортируете настройки в свой проект.Если вы просто сделаете ìmport settings
в своих приложениях, он загрузит модуль более одного раза.Вместо этого всегда делайте из django.conf import settings
.Насколько я знаю, ваш исходный файл настроек будет загружен только один раз при запуске сервера