5

Google-app-engine 開発サーバーは昨日は問題なく動作しましたが、今日起動しようとすると。このエラーを叫ぶだけです。

lsof -i:8080/を使用lsof -i:8000して、これらのポートが使用されないようにしました。また、 --port 引数を使用して別のポートに切り替えようとしました。gae フォルダーを削除して、新しいフォルダーをインストールしました。-- まったく運がありません。

明らかな解決策があるかもしれませんが、私には見えません。

これがOh-My-Godトレーススタックです..

Traceback (most recent call last):
File "/home/henry/software/google_appengine/dev_appserver.py", line 182, in <module>
        _run_file(__file__, globals())
File "/home/henry/software/google_appengine/dev_appserver.py", line 178, in _run_file
        execfile(script_path, globals_)
File "/home/henry/software/google_appengine/google/appengine/tools/devappserver2/devappserver2.py", line 689, in <module>
        main()
File "/home/henry/software/google_appengine/google/appengine/tools/devappserver2/devappserver2.py", line 682, in main
        dev_server.start(options)
File "/home/henry/software/google_appengine/google/appengine/tools/devappserver2/devappserver2.py", line 653, in start
        apis.start()
File "/home/henry/software/google_appengine/google/appengine/tools/devappserver2/api_server.py", line 152, in start
        super(APIServer, self).start()
File "/home/henry/software/google_appengine/google/appengine/tools/devappserver2/wsgi_server.py", line 294, in start
        raise BindError('Unable to find a consistent port %s' % host)
    google.appengine.tools.devappserver2.wsgi_server.BindError: Unable to find a consistent port localhost
    Exception in thread Thread-4 (most likely raised during interpreter shutdown):
    Traceback (most recent call last):
      File "/usr/lib/python2.7/threading.py", line 810, in __bootstrap_inner
      File "/usr/lib/python2.7/threading.py", line 763, in runhenry@henry-A
4

7 に答える 7

3

別のポートで実行したり、別のホストを使用したりする前に、それを見たことはありませんでした:

dev_appserver.py /path/to/project --port 8888 --host 127.0.0.1

ホストの場合は、現在の IP アドレスを追加します。

于 2013-05-22T10:44:55.243 に答える
1

Google App Engine にバグがあると思われます。私は appengine/tools/devappserver2/wsgi_server.py をデバッグしました。事実は次のとおりです。

280 addrinfo = socket.getaddrinfo(host, port, socket.AF_UNSPEC,
281                                     socket.SOCK_STREAM, 0, socket.AI_PASSIVE)

このコードでは、インターネットに接続すると、addrinfo にはパブリック インターネットのアドレスしかありません。コマンドラインでポートとホストを割り当てても。バインドするアドレスは現在使用しているパブリック アドレスであるため、このソケットを localhost にバインドする機会はありません。

それを解決するために、コードを次のように変更するだけです

280 addrinfo = socket.getaddrinfo(host, port, socket.AF_UNSPEC,
281                                     socket.SOCK_STREAM, 1, socket.AI_PASSIVE)

今はうまく動いており、 についてはコードをチェックしていませsocket.getaddrinfoんが、整数の 0 か 1 によって参照アドレスを無視するかしないかで機能すると思います。

ところで、私は MacO を使用していますが、システム依存の問題もある可能性があります。この場合、ソケット パッケージを何らかの方法で再設計する必要があります。

于 2013-06-28T05:29:53.480 に答える
1
dev_appserver.py . --port 4000

これは私のためにそれを修正しました。

于 2014-05-01T18:12:21.187 に答える
0

明示的なAPIポートをに渡すことで、この問題を解決しましたdev_appserver.py

dev_appserver.py path/to/project --api_port 3000

hosts ファイルを編集したり、--port/--hostを に渡したりしても問題を解決できませんでしたdev_appserver.py

根本原因を特定できませんでした。

于 2013-05-26T17:00:37.993 に答える