Когда я перехожу в 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__
.
Так что __init__
of IntervalTimeSpecification
неверно:
class IntervalTimeSpecification(TimeSpecification):
def __init__(self, interval, period):
super(IntervalTimeSpecification, self).__init__(self)
Я предполагаю, что кто-то перевел вызов init родительского класса старого стиля:
TimeSpecification.__init__(self)
к текущему, но забыл, что с super
, self
передается неявно. Правильная строка должна выглядеть так:
super(IntervalTimeSpecification, self).__init__()
Поздравляем! Вы нашли ошибку. Можете ли вы найти ошибку в общедоступном трекере, пожалуйста? Если вы хотите немедленно исправить это для себя, удалите аргумент "self" в строке, указанной в конце этой stacktrace.