KeyError:使用Pydev和Google App Engine时的'PATH_INFO'

时间:2013-02-08 19:53:22

标签: python eclipse google-app-engine pydev

我刚刚在Ubuntu 12.10下使用Eclipse开始使用GAE,当我尝试运行示例应用程序时,我遇到了一个我无法解决的错误:

from google.appengine.ext import webapp
from google.appengine.ext.webapp.util import run_wsgi_app

class MainPage(webapp.RequestHandler):

    def get(self):
        self.response.headers['Content-Type'] = 'text/plain'
        self.response.out.write('Hello, webapp World!')

application = webapp.WSGIApplication([('/', MainPage)], debug=True)

def main():
    run_wsgi_app(application)

if __name__ == "__main__":
    main()

我收到了这个错误:

    Traceback (most recent call last):
  File "/home/mordrec/workspace/helloworld/helloworld.py", line 20, in <module>
    main()
  File "/home/mordrec/workspace/helloworld/helloworld.py", line 17, in main
    run_wsgi_app(application)
  File "/opt/google_appengine/google/appengine/ext/webapp/util.py", line 98, in run_wsgi_app
    run_bare_wsgi_app(add_wsgi_middleware(application))
  File "/opt/google_appengine/google/appengine/ext/webapp/util.py", line 116, in run_bare_wsgi_app
    result = application(env, _start_response)
  File "/opt/google_appengine/google/appengine/ext/webapp/_webapp25.py", line 688, in __call__
    match = regexp.match(request.path)
  File "/opt/google_appengine/lib/webob_1_1_1/webob/request.py", line 303, in path
    urllib.quote(self.path_info, PATH_SAFE))
  File "/opt/google_appengine/lib/webob_1_1_1/webob/descriptors.py", line 23, in fget
    return req.environ[key]
KeyError: 'PATH_INFO'

1 个答案:

答案 0 :(得分:3)

我在一两个小时前遇到了完全相同的问题(但在Mac上)。以下说明中的步骤#5(“在本地部署”)为我工作。

您可以或多或少地遵循这些相同的说明,以使调试工作(只需执行“Debug As”)。

http://www.mkyong.com/google-app-engine/google-app-engine-python-hello-world-example-using-eclipse/

要在本地运行,请右键单击helloworld.py,选择“运行方式” - &gt; “运行配置”,创建一个新的“PyDev Google App Run”。

  1. 在主标签中 - &gt;主模块,手动键入“dev_appserver.py”的目录路径。 “浏览”按钮无法帮助您,手动输入。 enter image description here

  2. 在参数选项卡中 - &gt;程序参数,放“$ {project_loc} / src”。 enter image description here

  3. 运行它。默认情况下,它将部署到localhost:8080。 enter image description here

  4. 完成。 enter image description here