Usando el tutorial de google-app-engine, recibí el siguiente mensaje de stack de error:
Traceback (most recent call last): File "C:\Program Files (x86)\Google\google_appengine\google\appengine\runtime\wsgi.py", line 239, in Handle handler = _config_handle.add_wsgi_middleware(self._LoadHandler()) File "C:\Program Files (x86)\Google\google_appengine\google\appengine\runtime\wsgi.py", line 298, in _LoadHandler handler, path, err = LoadObject(self._handler) File "C:\Program Files (x86)\Google\google_appengine\google\appengine\runtime\wsgi.py", line 84, in LoadObject obj = __import__(path[0]) File "D:\Dev\SandBoxes\web\omaha\omaha.py", line 4, in import jinja2 ImportError: No module named jinja2
Aunque lo declaré en las bibliotecas de app.yaml:
application: *** version: 1 runtime: python27 api_version: 1 threadsafe: true libraries: - name: jinja2 version: latest - name: webapp2 version: latest handlers: - url: /css static_dir: css - url: /js static_dir: js - url: /img static_dir: img - url: /.* script: omaha.application
¿Alguien tiene un problema similar?
Para usar Jinja localmente, necesitas instalarlo localmente
easy_install Jinja2
o
pip install Jinja2
Necesidad de reiniciar la aplicación en AEL.
La aplicación en Google App Engine Launcher debe reiniciarse para que se tengan en cuenta las nuevas llamadas a la biblioteca. Me engañaron por el hecho de que todos los demás cambios no necesitan un reinicio real del servidor.
Es posible que no hayas agregado las siguientes líneas a app.yaml:
- name: jinja2 version: latest
Use estos comandos para instalar pip y Jija2 para Python 3:
sudo apt-get install python3-pip sudo pip3 install Jinja2
A pesar de que está declarado en sus bibliotecas, no significa necesariamente que el servidor de aplicaciones dev pueda encontrar la biblioteca dentro del appdine sdk.
Ya que está ejecutando el tutorial, asumo que está ejecutando la aplicación desde el iniciador del motor de aplicaciones de Google. Dentro del laucher, vaya a “Editar” >> “Preferencias” y configure su Ruta de Python y su Ruta de SDK.