xapian-bindings Python 兼容性
我在开发服务器上用Python成功运行了xapian,但在我的网页服务器上遇到了一些问题。
我一直碰到这个错误:
import xapian 错误追踪(最近的调用在最后): 文件 "", 第 1 行, 在 文件 "/home/x/lib/python2.6/xapian/init.py", 第 28 行, 在 _xapian = swig_import_helper() 文件 "/home/x/lib/python2.6/xapian/init.py", 第 27 行, 在 swig_import_helper return _mod UnboundLocalError: 本地变量 '_mod' 在赋值前被引用
我安装了最新版本的swig,并重新安装了xapian核心和xapian绑定,但错误还是存在。
任何建议都非常感谢。
1 个回答
我觉得这里的问题可能出在安装xapian-bindings这个包上。
xapian的Python绑定分为两个部分——一个是用Python写的部分,另一个是编译好的模块。你显然已经成功安装了Python部分(也就是/home/x/lib/python2.6/xapian/init.py),但是当Python部分尝试加载编译好的模块时,它却无法导入。
不幸的是,一个bug(可能是在swig里)导致了另一个错误被抛出,所以你看不到导入失败的具体异常。为了查看导入错误,你需要删除modern/xapian.py文件的第27行;也就是说,把它从:
try:
_mod = imp.load_module('_xapian', fp, pathname, description)
finally:
fp.close()
return _mod
改成:
try:
_mod = imp.load_module('_xapian', fp, pathname, description)
finally:
fp.close()
你没有说明你是怎么安装xapian-bindings的,使用的平台是什么,或者你用的Xapian版本,所以我也没法猜测你是怎么出现这种情况的。希望完整的异常信息能给你一些启发。