当我转到 http://localhost:8080/_ah/admin/cron 时,如 Google 文档中所述,我得到以下信息:
Traceback (most recent call last):
File "C:\Program Files\Google\google_appengine\google\appengine\ext\webapp\__init__.py", line 501, in __call__
handler.get(*groups)
File "C:\Program Files\Google\google_appengine\google\appengine\ext\admin\__init__.py", line 239, in get
schedule = groctimespecification.GrocTimeSpecification(entry.schedule)
File "C:\Program Files\Google\google_appengine\google\appengine\cron\groctimespecification.py", line 71, in GrocTimeSpecification
parser.period_string)
File "C:\Program Files\Google\google_appengine\google\appengine\cron\groctimespecification.py", line 122, in __init__
super(IntervalTimeSpecification, self).__init__(self)
TypeError: object.__init__() takes no parameters
我有最新的 SDK,看起来我的配置文件是正确的。
请您参考如下方法:
这绝对是 Google App Engine 中的错误。如果你检查 groctimespecification.py ,您会看到 IntervalTimeSpecification 继承自 TimeSpecification,后者又直接继承自 object,并且不会覆盖其 __init__ 方法。
所以 IntervalTimeSpecification 的 __init__ 是不正确的:
class IntervalTimeSpecification(TimeSpecification):
def __init__(self, interval, period):
super(IntervalTimeSpecification, self).__init__(self)
我的猜测是,有人转换了一个老式的父类初始化调用:
TimeSpecification.__init__(self)
到当前的,但是忘记了 super,self 是隐式传递的。正确的行应如下所示:
super(IntervalTimeSpecification, self).__init__()
