2017-10-09 9 views
0

Je suis le deuxième chapitre dans "Google App Engine avec Python" et j'ai copié le code exactement comme il est dans le livre, mais je reçois un blanc page lorsque je tente d'ouvrir maintenant et il me donne l'erreur suivante:GAE, Python - module 'principal' n'a pas d'application d'attribut

ImportError: <module 'main' from '...../clock/main.pyc'> has no attribute application 

Je l'ai remarqué, dit main.pyc à la fin il y a, il devrait utiliser main.py. Est-ce une sorte de fichier généré automatiquement?

app.yaml

application: clock 
version: 1 
runtime: python27 
api_version: 1 
threadsafe: yes 

handlers: 
- url: .* 
    script: main.application 

libraries: 
- name: webapp2 
    version: "2.5.2" 
- name: jinja2 
    version: "2.9.6" 
- name: markupsafe 
    version: "0.15" 

main.py

import datetime 
import jinja2 
import os 
import webapp2 

from google.appengine.api import users 

template_env = jinja2.Environment(loader=jinja2.FileSystemLoader(os.getcwd())) 

class MainPage(webapp2.RequestHandler): 
    def get(self): 
    current_time = datetime.datetime.now() 
    user = users.get_current_user() 
    login_url = users.create_login_url(self.request.path) 
    logout_url = users.create_logout_url(self.request.path) 

    template = template_env.get_template('home.html') 
    context = { 
     'current_time': current_time, 
     'user': user, 
     'login_url': login_url, 
     'logout_url': logout_url, 
    } 
    self.response.out.write(template.render(context)) 

    application = webapp2.WSGIApplication([('/', MainPage)], debug=True) 

apprécierais toute aide.

Répondre

1

La ligne

application = webapp2.WSGIApplication([('/', MainPage)], debug=True)

ne doit pas être bosselées; comme codé, il fait partie de la méthode get de la classe MainPage, mais il devrait s'agir d'une variable de niveau de module, donc pas indentée du tout.

+0

Merci, cela a résolu le problème. – jb2002