Ich gehe das GAE webapp2-Tutorial (Laufzeit 2.7) mit GoogleAppEngineLauncher auf meinem Mac durch, und obwohl ich alles genau befolge, erhalte ich immer einen Fehler an dem Punkt, an dem wir das Jinja2-Modul importieren: Verwenden von Vorlagen - Google App Engine
Fehler:
Traceback (letzter Aufruf zuletzt): Datei "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/runtime/wsgi.py", Zeile 168, in Handle-Handler = _config_handle.add_wsgi_middleware (self._LoadHandler ()) Datei "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/runtime/wsgi.py", Zeile 206, in _LoadHandler-Handler = Import (Pfad [0]) Datei "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver_import_hook.py", Zeile 640, in Verzierungsfunktion zurückgeben (selbst, * args, ** kwargs) Datei "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver_import_hook.py", Zeile 1756, in load_module return self.FindAndLoadModule (Submodul, fullname, search_path) Datei "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver_import_hook.py", Zeile 640, in Verzierungsfunktion zurückgeben (selbst, * args, ** kwargs) Datei "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver_import_hook.py", Zeile 1628, in FindAndLoadModule Beschreibung) Datei "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver_import_hook.py", Zeile 640, in Verzierungsfunktion zurückgeben (selbst, * args, ** kwargs) Datei "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver_import_hook.py", Zeile 1571, in LoadModuleRestricted Beschreibung) File "/Users/ykessler/Dropbox/appgrinders/gae_apps/helloworld2.7/helloworld.py", Zeile 9, im Import jinja2 ImportError: Kein Modul namens jinja2
So kann es aus irgendeinem Grund das Modul nicht finden, obwohl es als Teil der Extras von webapp2 verpackt werden soll. Wenn ich nach meinem Dateisystem suche, sieht es so aus, als wäre es da:
%Vor%Und wenn ich die App für GAE bereitstelle, funktioniert es gut. Warum sollte es lokal versagen?
webapp2 packt sein eigenes jinja2-Leimmodul, das Sie importieren, aber es packt jinja2 selbst nicht. Wenn Sie es verwenden möchten, müssen Sie es in Ihrem System Python mit easy_install installieren oder es in das Verzeichnis Ihrer App einfügen.
Verwenden Sie nicht den Parameter latest
in der Datei app.yaml, und geben Sie eine Version an, um eine höchst unwahrscheinliche, aber dennoch mögliche Inkompatibilitätskatastrophe zu vermeiden.
Alias, geben Sie 2,6 an. Dies ist die einzige Unterstützung, die gemäß den Dokumenten unterstützt wird >.
%Vor% Dann, in Ihrem Skript, nur import jinja2
, wie wir es von den Dokumenten .
Ich habe auch diesen Fehler, um ihn zu beheben Ich musste jinja2 am Ende meiner app.yaml Datei hinzufügen (wie es am Anfang des Tutorials heißt ..)
%Vor%Füge am Ende von helloworld / app.yaml Folgendes hinzu:
Tags und Links macos google-app-engine webapp2