我使用djangoappengine
模块在Google App Engine上运行django 1.5进行拼接。
一切正常,除了大约一半的/ _ah / queue / deferred调用引发以下导入错误:
Traceback (most recent call last):
File "..../third_party/djangoappengine/deferred/handler.py", line 2, in <module>
from djangoappengine import main
ImportError: No module named djangoappengine
如您所见,djangoappengine模块位于third_party
目录中,此目录已添加到sys.path
文件中的appengine_config.py
,因此不应该出现任何问题from djangoappengine import main
:
sys.path.insert(0, os.path.join(os.path.dirname(__file__), 'third_party'))
app.yaml
中的相关行是:
handlers:
- url: /_ah/queue/deferred
script: third_party/djangoappengine/deferred/handler.py
login: admin
导致这些偶发导入错误的原因是什么?难道我做错了什么?也许有一个我不知道的导入循环?
答案 0 :(得分:2)
发现我的代码使用旧的CGI接口而不是更新的WSGI。我修正了这个,问题从那以后就没有了。
更新了app.yaml
:
handlers:
- url: /_ah/queue/deferred
script: djangoappengine.deferred.handler.application
login: admin
答案 1 :(得分:1)
众所周知,deffer库可以通过第三方导入做一些时髦的事情。它与延迟任务加载新实例有关,第三方库缓慢加载。你有两个选择(第三个我不确定会起作用)