GoogleAppEngineのHello! Worldでエラー

GoogleAppEngineのHello! Worldでエラー


 結構な容量と通信帯域が使える無料のアプリケーションサーバ、GoogleAppEngine。
 だが、どこでも見かける初歩の初歩「Hello! World」でエラーが出たので覚書しておきたい。
 私はPythonでスクリプトをローカルWebサーバ上で動かそうとして、エラーになった。
 手順は、GoogleAppEngineのデベロッパーガイドに従ってみた。ただし、コマンドラインからの実行がうまく動かなかったので、Launcherから実行。
 表示されたエラーは、以下のような感じ。
Traceback (most recent call last):

  File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 3192, in _HandleRequest

    self._Dispatch(dispatcher, self.rfile, outfile, env_dict)

  File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 3135, in _Dispatch

    base_env_dict=env_dict)

  File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 516, in Dispatch

    base_env_dict=base_env_dict)

  File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 2394, in Dispatch

    self._module_dict)

  File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 2304, in ExecuteCGI

    reset_modules = exec_script(handler_path, cgi_path, hook)

  File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 2195, in ExecuteOrImportScript

    handler_path, cgi_path, import_hook)

  File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 2096, in LoadTargetModule

    module_code = import_hook.get_code(module_fullname)

  File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 1279, in Decorate

    return func(self, *args, **kwargs)

  File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 1956, in get_code

    full_path, search_path, submodule = self.GetModuleInfo(fullname)

  File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 1279, in Decorate

    return func(self, *args, **kwargs)

  File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 1909, in GetModuleInfo

    source_file, pathname, description = self.FindModuleRestricted(submodule, fullname, search_path)

  File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 1279, in Decorate

    return func(self, *args, **kwargs)

  File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 1678, in FindModuleRestricted

    raise CouldNotFindModuleError()

CouldNotFindModuleError
 すっごいゴチャゴチャ表示されたけども「CoudNotFindModuleError」ということだ。原因は、app.yamlファイル内のスペルミスだった。

application: helloworld

version: 1

runtime: python

api_version: 1


handlers:

- url: /.*

  script: heloworld.py


▲app.yaml


 なんと、「script: helloworld.py」と書くべきところを「script:heloworld.py」と書いてしまっていた。このスペルミスを直して、順調にエラーは出なくなった。めでたしめでたし。


 きっと「app.yamlのx行目がおかしいんじゃない?」というようなエラーだったらすぐに気付いた気がするのだが、そういうものなのでしょうがない。