Py_InitModule4 с Джапианом / Xapian - PullRequest
       7

Py_InitModule4 с Джапианом / Xapian

2 голосов
/ 10 февраля 2011

Я пытаюсь установить Djapian на RedHat5 / Python2.6. Я уже успешно установил его на моей машине OSX 10.6.

Я собрал и скомпилировал Xapian и Djapian без проблем для Py2.6. Затем я устанавливаю привязки Python для Xapian, и он работает нормально, однако, если открыть интерпретатор Python и ввести «import xapian» или попытаться включить djapian в мое приложение Django, я получаю следующую ошибку:

/ usr / lib64 / python2.6 / site-packages / _xapian.so: неопределенный символ: Py_InitModule4

При поиске я видел эту проблему для нескольких модулей, не только для Xapian, но, похоже, не могу найти хорошего решения. У меня установлен python-devel.

Я предполагаю, что проблема связана с Python, а не с Xapian.

1 Ответ

4 голосов
/ 10 февраля 2011

В некоторых конфигурациях (т. Е. Когда определен Py_DEBUG) Py_InitModule4 не имеет реализации из-за переписывания макросов. Это значит, что ABI не совместимы. У меня была эта проблема, когда я пытался использовать версию Py_Debug с версией выпуска исполняемого файла. Убедитесь, что вы используете одинаковые конфигурации (отладка / выпуск) для всех ваших целей.

Из исходного кода Python в modsupport.h (Py_TRACE_REFS определяется в Py_DEBUG):

 /* When we are tracing reference counts, rename Py_InitModule4 so
    modules compiled with incompatible settings will generate a
    link-time error. */
...