6

Python 2.7 の google-appengine 1.6.4 で公式の 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 ヘルワールド チュートリアルのファイルの違いの 1 つは、helloworld ファイルの名前が helloworld.py ではないことです。潜在的にそれは役立つでしょうか?

さらに、helloworld の上部にある PROJECT_DIR 変数が必要ですか?

基本的なチュートリアルを機能させるのに苦労している場合、最初にすべきことは、プロジェクトが文字通り Google の例とまったく同じであることを確認することです。

于 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

私はPython 2.7で公式のHello Worldチュートリアルに取り組んでおり、構成ファイルapp.yamlで同じ間違いを見つけました。最後の行は次のとおりです

スクリプト: helloworld.application

そのはず

スクリプト: helloworld.app

于 2015-04-01T21:33:54.957 に答える
0

ランタイム python 2.7 を使用する場合、メイン関数を使用する必要はありません

これを削除

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

そして単に呼び出す

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

Google のサイトからコードを直接コピーしたところ、500 エラーが発生しました。上記のどれも機能しませんでした。

私がしなければならなかったのは、コードの各行のインデントを変更 (つまり、スペースをタブに変更) してビンゴすることだけでした。

それは私のために働いた。

于 2013-03-01T08:25:24.050 に答える