4

我使用 django-haystack 2.0.0 来索引我的站点,它一直运行良好,直到我升级到 Django 1.5 并开始使用 WSGI 接口。如果我只使用该django_gunicorn命令效果很好,但 Django 文档“强烈建议”我使用该gunicorn命令。

当我使用该命令启动我的站点时gunicorn,Haystack 在任何页面加载时都会引发以下错误:

ImportError: cannot import name signals

我从 Django 或 Python shell 导入信号没有问题。我使用 virtualenv 并在该环境中本地安装所有软件包。我的 wsgi.py 文件看起来就像 django admin 中的默认文件,只是我将本地路径添加到 python 路径,如下所示:

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 设置指向我编写的自定义类时,我遇到了同样的问题。该类导入了我的一个模型,该模型最终沿导入链向上传播,以导入我的设置模块,从而导致循环导入。

使用指向类的设置(例如 HAYSTACK_SIGNAL_PROCESSOR)时,请确保该类是独立的,并且不会直接或间接导入 Django 设置文件。

于 2013-06-28T12:05:01.343 回答