8

Pythonで「Hello world」を試しています

  import webapp2

class MainHandler(webapp2.RequestHandler):
    def get(self):
        self.response.write('Hello world!')

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

app.yaml

application: engineapp
version: 1
runtime: python27
api_version: 1
threadsafe: yes

handlers:
- url: /favicon\.ico
  static_files: favicon.ico
  upload: favicon\.ico

- url: .*
  script: main.app

libraries:
- name: webapp2
  version: "2.5.2"

しかし、Google App Launcher で実行すると、このエラーが発生します

INFO     2013-05-22 12:22:40,302 admin_server.py:117] Starting admin server at: xxxxx:8000
HTTPError()
HTTPError()
Traceback (most recent call last):
  File "C:\Program Files (x86)\Google\google_app_engine\lib\cherrypy\cherrypy\wsgiserver\wsgiserver2.py", line 1302, in communicate
    req.respond()
  File "C:\Program Files (x86)\Google\google_app_engine\lib\cherrypy\cherrypy\wsgiserver\wsgiserver2.py", line 831, in respond
    self.server.gateway(self).respond()
  File "C:\Program Files (x86)\Google\google_app_engine\lib\cherrypy\cherrypy\wsgiserver\wsgiserver2.py", line 2115, in respond
    response = self.req.server.wsgi_app(self.env, self.start_response)
  File "C:\Program Files (x86)\Google\google_app_engine\google\appengine\tools\devappserver2\wsgi_server.py", line 246, in __call__
    return app(environ, start_response)
  File "C:\Program Files (x86)\Google\google_app_engine\google\appengine\tools\devappserver2\request_rewriter.py", line 311, in _rewriter_middleware
    response_body = iter(application(environ, wrapped_start_response))
  File "C:\Program Files (x86)\Google\google_app_engine\google\appengine\tools\devappserver2\python\request_handler.py", line 89, in __call__
    self._flush_logs(response.get('logs', []))
  File "C:\Program Files (x86)\Google\google_app_engine\google\appengine\tools\devappserver2\python\request_handler.py", line 220, in _flush_logs
    apiproxy_stub_map.MakeSyncCall('logservice', 'Flush', request, response)
  File "C:\Program Files (x86)\Google\google_app_engine\google\appengine\api\apiproxy_stub_map.py", line 94, in MakeSyncCall
    return stubmap.MakeSyncCall(service, call, request, response)
  File "C:\Program Files (x86)\Google\google_app_engine\google\appengine\api\apiproxy_stub_map.py", line 320, in MakeSyncCall
    rpc.CheckSuccess()
  File "C:\Program Files (x86)\Google\google_app_engine\google\appengine\api\apiproxy_rpc.py", line 156, in _WaitImpl
    self.request, self.response)
  File "C:\Program Files (x86)\Google\google_app_engine\google\appengine\ext\remote_api\remote_api_stub.py", line 200, in MakeSyncCall
    self._MakeRealSyncCall(service, call, request, response)
  File "C:\Program Files (x86)\Google\google_app_engine\google\appengine\ext\remote_api\remote_api_stub.py", line 226, in _MakeRealSyncCall
    encoded_response = self._server.Send(self._path, encoded_request)
  File "C:\Program Files (x86)\Google\google_app_engine\google\appengine\tools\appengine_rpc.py", line 393, in Send
    f = self.opener.open(req)
  File "C:\Python27\lib\urllib2.py", line 410, in open
    response = meth(req, response)
  File "C:\Python27\lib\urllib2.py", line 523, in http_response
    'http', request, response, code, msg, hdrs)
  File "C:\Python27\lib\urllib2.py", line 448, in error
    return self._call_chain(*args)
  File "C:\Python27\lib\urllib2.py", line 382, in _call_chain
    result = func(*args)
  File "C:\Python27\lib\urllib2.py", line 531, in http_error_default
    raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
HTTPError: HTTP Error 503: Service Unavailable

GAE Launcher(1.7.7) のバージョンを変更し、python を再インストールしましたが、動作しません

Windows 7、python 2.7、およびEAG Launcher 1.8.0を使用しています

4

3 に答える 3

22

プロキシ サーバーの背後で Google App Engine Launcher 1.8.6 を使用してプロキシ サーバーを使用すると、MacOSX でもまったく同じ問題が発生しました。「urllib2.py」の「proxy_bypass」に問題があるようです。

考えられる解決策は 2 つあります。

  1. 1.7.5 にダウングレードしますが、誰がダウングレードしたいですか?
  2. 「[GAE インストール パス]/google/appengine/tools/appengine_rpc.py」を編集し、次の行を探します。

    opener.add_handler(fancy_urllib.FancyProxyHandler())

私のコンピューターでは 578 行目で、次のように行頭にハッシュ (#) を付けました。

`#opener.add_handler(fancy_urllib.FancyProxyHandler())`

ファイルを保存し、アプリケーションを停止してから再起動します。これで、dev_appserver.py はプロキシ サーバーを一切使用しないようになりました。

アプリケーションが SOAP Web サービスなどの外部リソースを使用していて、プロキシ サーバーなしではサーバーにアクセスできない場合は、ダウングレードする必要があります。外部の JavaScript ファイル (Facebook SDK など) は、アプリケーションからではなく、ブラウザーから読み込まれることに注意してください。

私は外部の REST または SOAP サービスを使用していないので、うまくいきました。

うまくいけば、それはあなたにとってもうまくいくでしょう。

于 2013-10-18T22:42:58.680 に答える
1

私の解決策は、次の方法ですべてのプロキシ設定を削除することです。
unset http_proxy https_proxy ftp_proxy ftps_proxy

次に、アプリを再起動します
dev_appserver.py helloworld/

Windows を使用している場合は、IE 構成の「インターネット オプション」を変更する必要があります。

于 2014-02-18T11:53:45.947 に答える
-2

コマンド ラインからアプリを実行してみてください。走る

dev_appserver.py --port=8080 myapp

アプリのディレクトリから「myapp」をアプリケーションの名前に置き換えます。

詳細については、GAE ドキュメントを参照してください: https://developers.google.com/appengine/docs/python/tools/devserver#Running_the_Development_Web_Server

于 2013-07-08T08:29:01.743 に答える