6

我正在尝试在 google-appengine 1.6.4 中为 python 2.7运行官方的 helloworld程序。

不能运行一个简单的helloworld真是令人沮丧。我会很感激这里的任何帮助。

我遇到的错误:-

shadyabhi@MBP-archlinux ~/codes/gae $ dev_appserver.py helloworld/
INFO     2012-04-06 23:25:55,030 appengine_rpc.py:160] Server: appengine.google.com
INFO     2012-04-06 23:25:55,034 appcfg.py:582] Checking for updates to the SDK.
INFO     2012-04-06 23:25:56,709 appcfg.py:616] This SDK release is newer than the advertised release.
WARNING  2012-04-06 23:25:56,710 datastore_file_stub.py:513] Could not read datastore data from /tmp/dev_appserver.datastore
INFO     2012-04-06 23:25:56,773 dev_appserver_multiprocess.py:647] Running application dev~helloworld on port 8080: http://localhost:8080
INFO     2012-04-06 23:25:56,774 dev_appserver_multiprocess.py:649] Admin console is available at: http://localhost:8080/_ah/admin
WARNING  2012-04-06 23:26:00,928 py_zipimport.py:139] Can't open zipfile /usr/lib/python2.7/site-packages/setuptools-0.6c11.egg-info: IOError: [Errno 13] file not accessible: '/usr/lib/python2.7/site-packages/setuptools-0.6c11.egg-info'
ERROR    2012-04-06 23:26:01,101 wsgi.py:189] 
Traceback (most recent call last):
  File "/opt/google-appengine-python/google/appengine/runtime/wsgi.py", line 187, in Handle
    handler = _config_handle.add_wsgi_middleware(self._LoadHandler())
  File "/opt/google-appengine-python/google/appengine/runtime/wsgi.py", line 239, in _LoadHandler
    raise ImportError('%s has no attribute %s' % (handler, name))
ImportError: <module 'helloworld' from '/home/shadyabhi/codes/gae/helloworld/helloworld.pyc'> has no attribute app
INFO     2012-04-06 23:26:01,110 dev_appserver.py:2884] "GET / HTTP/1.1" 500 -
ERROR    2012-04-06 23:26:01,479 wsgi.py:189] 
Traceback (most recent call last):
  File "/opt/google-appengine-python/google/appengine/runtime/wsgi.py", line 187, in Handle
    handler = _config_handle.add_wsgi_middleware(self._LoadHandler())
  File "/opt/google-appengine-python/google/appengine/runtime/wsgi.py", line 239, in _LoadHandler
    raise ImportError('%s has no attribute %s' % (handler, name))
ImportError: <module 'helloworld' from '/home/shadyabhi/codes/gae/helloworld/helloworld.pyc'> has no attribute app
INFO     2012-04-06 23:26:01,486 dev_appserver.py:2884] "GET /favicon.ico HTTP/1.1" 500 -
4

7 回答 7

36

如果您使用的是 python2.7 库,则本教程会出错

此行不正确:

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

正确的行应该是:

app = webapp2.WSGIApplication([('/', MainPage)], debug=True)

WSGI 处理程序正在抱怨,因为它正在寻找一个名为“app”的属性。

于 2012-04-15T01:34:37.443 回答
4

您在 github 上的文件和官方的 google hellworld 教程之间的一个区别是您的 helloworld 文件似乎没有命名为 helloworld.py。可能会有所帮助?

此外,您是否需要 helloworld 顶部的 PROJECT_DIR 变量?

如果您正在努力使基本教程正常工作,那么您应该做的第一件事是确保您的项目与谷歌示例完全相同。

于 2012-04-07T18:08:15.637 回答
1

通过检查您的 git 存储库,我看到 helloworld 不是 .py 文件。
将其重命名为 helloworld.py ,您应该一切顺利。

于 2012-04-07T18:32:03.373 回答
0

这段代码对我有用(注意“应用程序”替换为“应用程序”):

app = webapp.WSGIApplication(
  [('/', MainHandler),
    ('/upload', UploadHandler),
    ('/serve/([^/]+)?', ServeHandler),
  ], debug=True)

if __name__ == '__main__':
  run_wsgi_app(app)
于 2012-08-17T20:17:12.613 回答
0

直接从 Google 网站复制代码后,我收到 500 错误。以上都没有奏效。

我所要做的就是更改每行代码的缩进(即,将空格更改为制表符)和宾果游戏。

这对我有用。

于 2013-03-01T08:25:24.050 回答
0

使用运行时 python 2.7 时,您不必使用 main 函数

删除这个

if __name__ == '__main__':
      run_wsgi_app(app)

并简单地调用

app = webapp.WSGIApplication(
[('/', MainHandler),
('/upload', UploadHandler), 
('/serve/([^/]+)?', ServeHandler),], debug=True)
于 2013-07-29T11:11:45.803 回答
0

一直在做python 2.7官方的hello world教程,在配置文件app.yaml中发现同样的错误最后一行写着

脚本:helloworld.application

它应该是

脚本:helloworld.app

于 2015-04-01T21:33:54.957 回答