0

開発サーバーで Python を使用して期待どおりに xapian を動作させることができますが、Web サーバーに問題があります。

私はこのエラーに遭遇し続けます:

import xapian Traceback (最新の呼び出しが最後): ファイル ""、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: local variable '_mod' referenced before assignment

swig の最新コピーをインストールし、xapian コアと xapian-bindings の両方を再インストールしましたが、エラーは解決しません。

どんなアイデアでも大歓迎です。

4

1 に答える 1

3

ここでの問題は、xapian-bindingsパッケージのインストールにあると思います。

Pythonのxapianバインディングは、Pythonで記述された部分とコンパイルされたモジュールの2つの部分で構成されています。Pythonパーツを正常にインストールしましたが(つまり、/home/x/lib/python2.6/xapian/init.py)、Pythonパーツがコンパイル済みモジュールを読み込もうとすると、インポートに失敗します。

残念ながら、バグ(おそらく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バインディングをどのようにインストールしたか、どのプラットフォームを使用しているか、どのバージョンのXapianを使用しているかはわかりません。そのため、どのようにしてこの状態になったかを推測することはできません。うまくいけば、完全な例外は啓発されるでしょう。

于 2010-10-14T18:55:09.547 に答える