2

我正在尝试在 RedHat5 / Python2.6 上安装 Djapian。我已经在我的 OSX 10.6 机器上成功安装了它。

我已经为 Py2.6 构建和编译 Xapian 和 Djapian 没有问题。然后我为 Xapian 安装 Python 绑定,它工作正常,但是,如果打开 Python 解释器并输入“import xapian,或者尝试在我的 Django 应用程序中包含 djapian,我会收到以下错误:

/usr/lib64/python2.6/site-packages/_xapian.so:未定义符号:Py_InitModule4

在搜索中,我已经在几个模块中看到了这个问题,而不仅仅是 Xapian,但我似乎找不到一个好的解决方案。我确实安装了 python-devel。

我猜问题出在 Python 方面,而不是 Xapian。

4

1 回答 1

4

在某些配置中(即定义 Py_DEBUG 时)Py_InitModule4 由于宏重写而没有实现。它旨在告诉您 ABI 不兼容。当我尝试将 Py_Debug 版本与可执行文件的发布版本一起使用时,我遇到了这个问题。确保您在所有目标上编译为相同的配置(调试/发布)。

从 modsupport.h 中的 Python 源代码(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. */
于 2011-02-10T16:46:17.130 回答