web-dev-qa-db-fra.com

ImportError: aucun module nommé jinja2

En utilisant le didacticiel google-app-engine, j'ai reçu le message d'erreur suivant:

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 <module>
import jinja2
ImportError: No module named jinja2

Même si je l'ai déclaré dans les bibliothèques 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

Quelqu'un at-il eu un problème similaire?

25
Cyril

Besoin de redémarrer l'application dans AEL.

L'application dans Google App Engine Launcher doit être redémarrée pour que les nouveaux appels de bibliothèque soient pris en compte. J'ai été induit en erreur par le fait que toutes les autres modifications n'ont pas besoin d'un redémarrage réel du serveur.

7
Cyril

Pour utiliser Jinja localement, vous devez l'installer localement

easy_install Jinja2

ou

pip install Jinja2
25
topless

Vous n'avez peut-être pas ajouté les lignes suivantes à app.yaml:

- name: jinja2
  version: latest
5
Kees Briggs

Utilisez ces commandes pour installer pip et Jija2 pour Python 3:

Sudo apt-get install python3-pip
Sudo pip3 install Jinja2
1
user3546879

Même s'il est déclaré dans vos bibliothèques, cela ne signifie pas nécessairement que le serveur d'applications dev peut trouver la bibliothèque dans le sdk appengine.

Puisque vous exécutez le didacticiel, je suppose que vous exécutez l'application à partir du lanceur de moteur d'application Google. Dans le lanceur, allez dans "Modifier" >> "Préférences" et définissez votre Python et chemin SDK.

enter image description here

0
Jesse