使用Haystack 2.0.0与Django 1.5和Gunicorn WSGI时的ImportError

Tom*_*Tom 4 django wsgi virtualenv django-haystack gunicorn

我使用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)`
Run Code Online (Sandbox Code Playgroud)

非常感谢您提供的任何帮助,谢谢!

Ste*_*haw 7

我不使用gunicorn,但是当我使用HAYSTACK_SIGNAL_PROCESSOR设置指向我编写的自定义类时,我遇到了同样的问题.该类导入了我的一个模型,最终传播到导入链,导入我的设置模块,从而导致循环导入.

当使用指向类的HAYSTACK_SIGNAL_PROCESSOR等设置时,请确保该类是独立的,并且不直接或间接导入Django设置文件.