如何解决“无法找到一致的端口 localhost”App Engine 错误?

Posted

技术标签:

【中文标题】如何解决“无法找到一致的端口 localhost”App Engine 错误?【英文标题】:How can I solve 'Unable to find consistent port localhost' App Engine error? 【发布时间】:2013-07-12 02:46:41 【问题描述】:

我试图运行 Google App Engine 只是为了启动一个 hello world 应用,但一直失败。我在 Windows 7 上并尝试使用 GUI 启动器以及 Cygwin 终端。遵循了来自 SO 论坛 (Failed to start devlopment server -- BindError: Unable to find a consistent port localhost) 和其他人的许多不同建议:

-我已将 etc/hosts 文件中的 localhosts 条目编辑为 127.0.0.1

-我已经重新安装了 Google App Engine 软件包

-尝试编辑 .yaml 和 main.py 文件

-尝试将端口更改为 9000 和 8888

-尝试明确指定我要启动的主机? (例如:--skip_sdk_update_check=yes --port=8080 --admin_port=8000 --host 127.0.0.1)

-尝试专门允许应用引擎启动器通过防火墙进行通信

目前还没有任何改变。

错误信息如下:

"2013-07-13 16:35:05 Running command: "['C:\\Python27\\python.exe', 'C:\\Program Files (x86)\\Google\\google_appengine\\dev_appserver.py', '--skip_sdk_update_check=yes', '--port=8080', '--admin_port=8000', u'C:\\Users\\Greg\\hello-udacity']"
INFO     2013-07-13 16:35:12,631 devappserver2.py:528] Skipping SDK update check.
WARNING  2013-07-13 16:35:12,655 api_server.py:314] Could not initialize images API; you are likely missing the Python "PIL" module.
WARNING  2013-07-13 16:35:12,660 simple_search_stub.py:955] Could not read search indexes from c:\users\greg\appdata\local\temp\appengine.hello-udacity\search_indexes
Traceback (most recent call last):
  File "C:\Program Files (x86)\Google\google_appengine\dev_appserver.py", line 182, in <module>
    _run_file(__file__, globals())
  File "C:\Program Files (x86)\Google\google_appengine\dev_appserver.py", line 178, in _run_file
    execfile(script_path, globals_)
  File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\devappserver2\devappserver2.py", line 695, in <module>
    main()
  File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\devappserver2\devappserver2.py", line 688, in main
    dev_server.start(options)
  File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\devappserver2\devappserver2.py", line 659, in start
    apis.start()
  File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\devappserver2\api_server.py", line 137, in start
    super(APIServer, self).start()
  File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\devappserver2\wsgi_server.py", line 298, 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
2013-07-13 16:35:12 (Process exited with code 1)"

【问题讨论】:

您有没有尝试过 8080 以外的端口?例如:--port 8888 刚刚尝试了 8888 端口。没有运气。 还没想通。 【参考方案1】:

从错误消息看来,您明确传递了--skip_sdk_update_check=yes --port=8080 --admin_port=8000

您是否尝试过指定要启动的主机?例如:

--skip_sdk_update_check=yes --port=8080 --admin_port=8000 --host 127.0.0.1

另一个有趣的事情是暂时关闭您在计算机上运行的所有防火墙,看看是否有影响。

【讨论】:

谢谢杰西。我只是尝试指定主机并得到相同的确切结果。我还允许应用引擎启动器通过防火墙进行通信,但没有改变。【参考方案2】:

与中国的一位同事在机器上运行 Astrall *** 时遇到了这个问题。从打开模式更改为隐身模式,这解决了问题。

【讨论】:

【参考方案3】:

可能为时已晚,但我在更新 AppEngine SDK 后遇到了同样的情况。 在“wsgi_server.py”文件中编辑以下行

class WsgiServer(object):
    .....
    def start(self):
        try:
           addrinfo = socket.getaddrinfo(host, port, socket.AF_UNSPEC,
                                socket.SOCK_STREAM, 0, socket.AI_PASSIVE)

class WsgiServer(object):
    .....
    def start(self):
        try:
           addrinfo = socket.getaddrinfo(host, port, socket.AF_UNSPEC,
                                socket.SOCK_STREAM, 1, socket.AI_PASSIVE)

【讨论】:

以上是关于如何解决“无法找到一致的端口 localhost”App Engine 错误?的主要内容,如果未能解决你的问题,请参考以下文章

如何解决 Ajax 跨域请求不到的问题

如何解决包冲突问题

如何解决包冲突问题

如何解决ajax跨域问题

MySQL 的 10048问题,如何解决?

如何解决smartgit的冲突问题