我正在尝试在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。
答案 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. */