/ _ah/queue/deferred奇怪的导入错误

Tza*_*ach 6 python django google-app-engine djangoappengine

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

正如你所看到的,djangoappengine模块坐在里面third_party目录,这个目录添加到sys.pathappengine_config.py文件,所以不应该有做任何的问题from djangoappengine import main:

sys.path.insert(0, os.path.join(os.path.dirname(__file__), 'third_party'))
Run Code Online (Sandbox Code Playgroud)

相关的一行app.yaml是:

handlers:
- url: /_ah/queue/deferred
  script: third_party/djangoappengine/deferred/handler.py
  login: admin
Run Code Online (Sandbox Code Playgroud)

导致这些零星导入错误的原因是什么?难道我做错了什么?也许有一个我不知道的导入循环?

Tza*_*ach 2

发现我的代码使用旧的 CGI 接口而不是较新的 WSGI。我修复了这个问题,此后问题就没有再出现。

更新app.yaml

handlers:
- url: /_ah/queue/deferred
  script: djangoappengine.deferred.handler.application
  login: admin
Run Code Online (Sandbox Code Playgroud)