8

MacでGoogleAppEngineLauncherを使用してGAEwebapp2チュートリアル(ランタイム2.7)を実行していますが、すべてを正確に実行していますが、Jinja2モジュールをインポートする時点でエラーが発生し続けます:テンプレートの使用-Google App Engine

エラー:

トレースバック(最後の最後の呼び出し):ファイル "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/runtime/wsgi.py"、行168、ハンドルハンドラー= _config_handle.add_wsgi_middleware(self._LoadHandler())ファイル "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/runtime/wsgi.py"、行206、 in _LoadHandler handler = import(path [0])File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver_import_hook.py"、行640、デコレートリターンfunc(self、* args、** kwargs)ファイル "/ Applications/GoogleAppEngineLauncher。app /Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver_import_hook.py"、1756行目、load_module return self.FindAndLoadModule(submodule、fullname、search_path)File" / Applications / GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver_import_hook.py "、行640、Decorate return func(self、* args、** kwargs)File" /Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver_import_hook.py "、1628行目、FindAndLoadModuleの説明)ファイル" /Applications/GoogleAppEngineLauncher.app/コンテンツ/リソース/GoogleAppEngine-デフォルト。bundle / Contents / Resources / google_appengine / google / appengine / tools / dev_appserver_import_hook.py "、行640、Decorate return func(self、* args、** kwargs)File" /Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine -default.bundle / Contents / Resources / google_appengine / google / appengine / tools / dev_appserver_import_hook.py "、1571行目、LoadModuleRestricted description)ファイル" /Users/ykessler/Dropbox/appgrinders/gae_apps/helloworld2.7/helloworld.py " 、9行目、import jinja2 ImportError:jinja2という名前のモジュールがありませんbundle / Contents / Resources / google_appengine / google / appengine / tools / dev_appserver_import_hook.py "、1571行目、LoadModuleRestricted description)ファイル" /Users/ykessler/Dropbox/appgrinders/gae_apps/helloworld2.7/helloworld.py "、9行目、import jinja2 ImportError:jinja2という名前のモジュールがありませんbundle / Contents / Resources / google_appengine / google / appengine / tools / dev_appserver_import_hook.py "、1571行目、LoadModuleRestricted description)ファイル" /Users/ykessler/Dropbox/appgrinders/gae_apps/helloworld2.7/helloworld.py "、9行目、import jinja2 ImportError:jinja2という名前のモジュールがありません

そのため、webapp2のエクストラの一部としてパッケージ化されているはずなのに、何らかの理由でモジュールが見つかりません。ファイルシステムを検索すると、次のように表示されます。

/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/webapp2/webapp2_extras/jinja2.py

また、アプリをGAEにデプロイすると、正常に機能します。なぜローカルで失敗するのでしょうか?

4

3 に答える 3

7

webapp2は、インポートするものである独自のjinja2'glue'モジュールをパッケージ化しますが、jinja2自体はパッケージ化しません。使用する場合は、easy_installを使用してシステムPythonにインストールするか、アプリのディレクトリに配置する必要があります。

于 2011-11-14T23:17:42.537 に答える
7

app.yamlファイルのパラメーターを使用せずlatest、バージョンを指定して、非常にありそうもないが、それでも起こりうる非互換性の大惨事を防ぎます。

エイリアス、ドキュメントによると、サポートされている唯一の2.6を指定します。

libraries:
- name: jinja2
  version: "2.6"

次に、ドキュメントimport jinja2で説明されているように、スクリプトで。

于 2012-04-21T23:05:46.243 に答える
2

私もこのエラーが発生しました。これを修正するには、app.yamlファイルの最後にjinja2を追加する必要がありました(チュートリアルの冒頭で述べたように..)

まず、helloworld/app.yamlの下部に以下を追加します。

libraries:
- name: jinja2
  version: latest
于 2012-03-08T03:27:46.740 に答える