【问题标题】:Why can I not view my Google App Engine cron admin page?为什么我无法查看我的 Google App Engine cron 管理页面?
【发布时间】:2010-10-28 11:20:07
【问题描述】:

当我转到 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,看起来我的配置文件是正确的。

【问题讨论】:

    标签: python google-app-engine cron stack-trace


    【解决方案1】:

    恭喜!你发现了一个错误。你能在public issue tracker 上提交一个错误吗?如果您想立即为自己修复它,请删除该堆栈跟踪末尾引用的行中的“self”参数。

    【讨论】:

    • 你试过了吗?它对我不起作用,我想是因为我使用的是 2.6,我现在正在下载 2.5.4 看看是否可以修复它。
    • 不,我检查了源代码,并确认这绝对是一个错误。 :)
    • 为了将来参考,这个问题现在已经修复(我在 1.2.8)。
    【解决方案2】:

    这绝对是 Google App Engine 中的一个错误。如果您检查groctimespecification.py,您会看到IntervalTimeSpecification 继承自TimeSpecification,而TimeSpecification 又直接继承自object,并且不会覆盖其__init__ 方法。

    所以IntervalTimeSpecification__init__ 不正确:

    class IntervalTimeSpecification(TimeSpecification):
      def __init__(self, interval, period):
        super(IntervalTimeSpecification, self).__init__(self)
    

    我的猜测是,有人转换了旧式的父类初始化调用:

    TimeSpecification.__init__(self)
    

    到当前的,但忘记了superself 是隐式传递的。正确的行应该是这样的:

    super(IntervalTimeSpecification, self).__init__()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-03-08
      • 2013-02-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多