google-app-engine – 在Python 2.7中使用deferred.defer

我正在尝试将App Engine应用程序移动到
Python 2.7运行时.

我在使用SDK 1.6.5版导入google.appengine.ext.deferred库时看到了下面的回溯.我也试过上传应用程序并在运行时看到类似的错误.

是否有其他人使用Python 2.7的延迟库.有没有人见过类似的问题?

编辑

回答我自己的问题.我的应用程序有自己的webapp2版本(可能是旧版本)删除它并将webapp2添加到app.yaml的库部分修复了问题.虽然,我不太清楚为什么因为追溯似乎显示延迟库导入正确版本的webapp.

追溯:

File ".../units/unitsSchema/styleModel.py", line 30, in <module>
    from google.appengine.ext import deferred
  File "/base/python27_runtime/python27_lib/versions/1/google/appengine/ext/deferred/__init__.py", line 29, in <module>
    from deferred import *
  File "/base/python27_runtime/python27_lib/versions/1/google/appengine/ext/deferred/deferred.py", line 266, in <module>
    class TaskHandler(webapp.RequestHandler):
AttributeError: 'module' object has no attribute 'RequestHandler'

最佳答案 看起来你的python类路径中有一个自定义的webapp.py,它正在影响正确的webapp.py.

我目前正在使用新的Python 2.7运行时的延迟库而没有问题.
我在app.yaml的builtins部分启用了它:

builtins:
  - deferred: on
点赞