2011-02-10 44 views
2

我想在RedHat5/Python2.6上安装Djapian。我已经在我的OSX 10.6机器上成功安装了它。Py_InitModule4与Djapian/Xapian

我已经编译并编译Xapian和Djapian,没有Py2.6的问题。然后,我安装了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。

回答

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. */ 
+0

谢谢,如果绑定是错误的,将采取一看我想知道。 – picus 2011-02-10 17:23:48