2009-05-23 5 views
1

Quand je vais à http://localhost:8080/_ah/admin/cron, comme indiqué dans les documents de Google, je reçois les éléments suivants:Pourquoi ne puis-je pas voir ma page d'administration cron Google App Engine?

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 

J'ai le dernier SDK, et il semble que mes fichiers de configuration sont corrects.

Répondre

3

Félicitations! Vous avez trouvé un bug. Pouvez-vous déposer un bug sur le public issue tracker, s'il vous plaît? Si vous voulez le réparer immédiatement, supprimez l'argument 'self' dans la ligne référencée à la fin de cette pile.

+0

Avez-vous essayé? Cela n'a pas fonctionné pour moi, je pense que c'est parce que j'utilise 2.6, je télécharge 2.5.4 dès maintenant pour voir si cela résout le problème. – MStodd

+0

Non, j'ai vérifié la source, et vérifié que c'est vraiment un bug. :) –

+0

Pour référence future, cela a été corrigé maintenant (je suis sur 1.2.8). –

4

Ceci est définitivement un bug dans Google App Engine. Si vous vérifiez groctimespecification.py, vous verrez que IntervalTimeSpecification hérite de TimeSpecification, qui à son tour hérite directement de object et ne remplace pas sa méthode __init__.

Ainsi, le __init__ de IntervalTimeSpecification est incorrect:

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

Je pense, quelqu'un converti un style ancien appel init classe parente:

TimeSpecification.__init__(self) 

à l'actuel, mais il a oublié que, , self est passé implicitement. La ligne correcte devrait ressembler à ceci:

super(IntervalTimeSpecification, self).__init__() 
Questions connexes