久しぶりにGAE/pyに触ることとなったため、新規にGAE/pyの環境構築を行い、デプロイしてあるソースコードをダウンロードしました。
その後、GAE/pyのランチャーでRunしようとしたところエラーが出たため、その対応内容を残しておきます。
エラー
Traceback (most recent call last): File "C:\Program Files (x86)\Google\google_appengine\dev_appserver.py", line 82, in_run_file(__file__, globals()) File "C:\Program Files (x86)\Google\google_appengine\dev_appserver.py", line 78, in _run_file execfile(_PATHS.script_file(script_name), globals_) File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\devappserver2\devappserver2.py", line 33, in from google.appengine.tools.devappserver2.admin import admin_server File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\devappserver2\admin\admin_server.py", line 29, in from google.appengine.tools.devappserver2.admin import console File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\devappserver2\admin\console.py", line 22, in from google.appengine.tools.devappserver2 import module File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\devappserver2\module.py", line 49, in from google.appengine.tools.devappserver2 import gcs_server File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\devappserver2\gcs_server.py", line 29, in from google.appengine.tools.devappserver2 import wsgi_server File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\devappserver2\wsgi_server.py", line 31, in from cherrypy import wsgiserver File "C:\Program Files (x86)\Google\google_appengine\lib\cherrypy\cherrypy\__init__.py", line 70, in from cherrypy import _cptools File "C:\Program Files (x86)\Google\google_appengine\lib\cherrypy\cherrypy\_cptools.py", line 245, in from cherrypy.lib import cptools, encoding, auth, static, jsontools File "C:\Program Files (x86)\Google\google_appengine\lib\cherrypy\cherrypy\lib\static.py", line 7, in mimetypes.init() File "C:\Python27\lib\mimetypes.py", line 358, in init db.read_windows_registry() File "C:\Python27\lib\mimetypes.py", line 258, in read_windows_registry for subkeyname in enum_types(hkcr): File "C:\Python27\lib\mimetypes.py", line 249, in enum_types ctype = ctype.encode(default_encoding) # omit in 3.x! UnicodeDecodeError: 'ascii' codec can't decode byte 0x83 in position 33: ordinal not in range(128) 2014-04-02 00:00:00 (Process exited with code 1)
対応
以下を参考にレジストリ「HKEY_CLASSES_ROOT\MIME\Database\Content Type」を確認しましたが、それらしい2byte文字が設定されている部分が見つかりませんでした。
- python - How to run Google app engine web server on Windows correct? - Stack Overflow
- Problem with "RUN" in google app engine in Win7 - Udacity Forums
仕方ないので、Pythonのバージョンを2.7.5に下げてみたところ、問題なく動作しました。
その他
デプロイしてあるソースコードをダウンロードするには、以下を実行します。
appcfg.py download_app -A <your_app_id> -V <your_app_version> <output-dir>
参考:Uploading, Downloading, and Managing a Python App - Python — Google Developers