結構な容量と通信帯域が使える無料のアプリケーションサーバ、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行目がおかしいんじゃない?」というようなエラーだったらすぐに気付いた気がするのだが、そういうものなのでしょうがない。