在Python 2.7中使用deferred.defer

时间:2012-05-03 21:10:44

标签: google-app-engine

我正在尝试将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'

2 个答案:

答案 0 :(得分:2)

看起来你的python类路径中有一个自定义webapp.py,它正在隐藏正确的webapp.py

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

builtins:
  - deferred: on

答案 1 :(得分:0)

我遇到了同样的问题。我尝试了很多方法。 最后,我解决了它。这是webapp2版本的问题。 app.yaml文件中有一个webapp2库。只使用这个。 不要从deps导入webapp2。