带有Djapian / Xapian的Py_InitModule4

时间:2011-02-10 16:31:30

标签: python redhat xapian

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

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

/usr/lib64/python2.6/site-packages/_xapian.so:undefined symbol:Py_InitModule4

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

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

1 个答案:

答案 0 :(得分: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. */