4

私は django-haystack 2.0.0 を使用してサイトのインデックスを作成していますが、Django 1.5 にアップグレードして WSGI インターフェースの使用を開始するまで、うまく機能していました。コマンドを使用するだけdjango_gunicornでもうまく機能しますが、Django のドキュメントでは、このコマンドを使用することを「強く推奨」していますgunicorn

コマンドでサイトを開始するとgunicorn、Haystack はページの読み込み時に次のエラーをスローします。

ImportError: cannot import name signals

Django または Python シェルからのシグナルのインポートに問題はありません。virtualenv を使用し、その環境内ですべてのパッケージをローカルにインストールします。私の wsgi.py ファイルは、Python パスにローカル パスを追加することを除いて、django admin のデフォルトのファイルと同じように見えます。

path = os.sep.join(os.path.abspath(__file__).split(os.sep)[:-2])
if path not in sys.path:
    sys.path.append(path)`

あなたが提供できるどんな助けでも大歓迎です、ありがとう!

4

1 に答える 1

7

私は gunicorn を使用していませんが、HAYSTACK_SIGNAL_PROCESSOR 設定を使用して、作成したカスタム クラスを指定したときに同じ問題が発生しました。そのクラスは私のモデルの 1 つをインポートし、それが最終的にインポート チェーンを伝播して私の設定モジュールをインポートしたため、循環インポートが発生しました。

クラスを指す HAYSTACK_SIGNAL_PROCESSOR などの設定を使用する場合は、そのクラスがスタンドアロンであることを確認し、直接または間接的に Django 設定ファイルをインポートしないようにします。

于 2013-06-28T12:05:01.343 に答える