Problemas con Jinja2: TemplateNotFound: index.html

Estoy tratando de construir mi primera aplicación GAE con jinja2. Después de superar una docena de pequeños errores, ahora me quedo con esto:

Traceback (most recent call last): File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2\webapp2.py", line 1536, in __call__ rv = self.handle_exception(request, response, e) File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2\webapp2.py", line 1530, in __call__ rv = self.router.dispatch(request, response) File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2\webapp2.py", line 1278, in default_dispatcher return route.handler_adapter(request, response) File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2\webapp2.py", line 1102, in __call__ return handler.dispatch() File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2\webapp2.py", line 572, in dispatch return self.handle_exception(e, self.app.debug) File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2\webapp2.py", line 570, in dispatch return method(*args, **kwargs) File "C:\Users\CG\Documents\udacity\HiMon\main.py", line 31, in get template = jinja_environment.get_template('index.html') File "C:\Program Files (x86)\Google\google_appengine\lib\jinja2\jinja2\environment.py", line 719, in get_template return self._load_template(name, self.make_globals(globals)) File "C:\Program Files (x86)\Google\google_appengine\lib\jinja2\jinja2\environment.py", line 693, in _load_template template = self.loader.load(self, name, globals) File "C:\Program Files (x86)\Google\google_appengine\lib\jinja2\jinja2\loaders.py", line 115, in load source, filename, uptodate = self.get_source(environment, name) File "C:\Program Files (x86)\Google\google_appengine\lib\jinja2\jinja2\loaders.py", line 180, in get_source raise TemplateNotFound(template) TemplateNotFound: index.html 

Aquí mi archivo yaml:

 application: himother version: 1 runtime: python27 api_version: 1 threadsafe: yes handlers: - url: /favicon\.ico static_files: favicon.ico upload: favicon\.ico - url: .* script: main.app libraries: - name: webapp2 version: "2.5.1" - name: jinja2 version: "2.6" 

Aquí mi código:

 import os import webapp2 import jinja2 jinja_environment = jinja2.Environment(autoescape=True, loader=jinja2.FileSystemLoader(os.path.join(os.path.dirname(__file__), 'templates'))) class MainPage(webapp2.RequestHandler): def get(self): template_values = { 'name': 'Serendipo', 'verb': 'extremely happy' } template = jinja_environment.get_template('index.html') self.response.out.write(template.render(template_values)) app = webapp2.WSGIApplication([('/', MainPage)], debug=True) 

Aquí mi plantilla .html:

    Look Ma, I'm using Jinja!   Hi there - I'm {{ name }}, and I {{ verb }} programming!   

A pesar del mensaje de error, tengo una carpeta llamada “templates” y, dentro de ella, creé el archivo index.html:

introduzca la descripción de la imagen aquí

introduzca la descripción de la imagen aquí

introduzca la descripción de la imagen aquí

También he instalado jinja2.

¿Alguien tiene alguna idea de la causa de este error ahora?

Tratar de usar

 loader=jinja2.FileSystemLoader('templates') 

en lugar de

 loader=jinja2.FileSystemLoader(os.path.join(os.path.dirname(__file__), 'templates')) 

Esto funciona para mi.

Esto lo resolvió para mí:

 mkdir templates echo "hello world" > templates/index.html 

Dos pensamientos basados ​​en conseguir que mi primer esfuerzo de GAE con Jinja2 funcione. Primero, en tu archivo yaml, tienes “-url:. ” Aunque utilicé “-url: /. ” Basado en los tutoriales que vi. Sin embargo, esto puede ser irrelevante para su problema. Segundo, usé la guía en esta página para establecer mi renderizador Jinja2 y no tuve ningún problema con la plantilla que se encuentra en el subdirectorio de plantillas del directorio de la aplicación: http://webapp-improved.appspot.com/api/webapp2_extras/ jinja2.html # module-webapp2_extras.jinja2

Bueno, mi error fue simple y tonto. He creado el archivo “index.html” de la manera incorrecta ( aquí de la manera correcta). Por lo tanto, mi archivo “index.html” era de hecho un archivo “.text” (porque simplemente le cambié el nombre a “index.html” en lugar de “guardar como” index.html ” ). ¡Gracias por la ayuda, chicos!

Recibí el mismo error e intenté todas las respuestas. Más tarde, debo saber que primero debe configurar el entorno con la carpeta correcta para buscar el archivo html y solo entonces jinja2 podrá localizar el archivo.

Las siguientes líneas eliminarán el error:

 env = Environment(loader=FileSystemLoader(searchpath='C:\Folder\of\html\file') template = env.get_template('Name_of_file.html')