在一段时间没有使用 App Engine 之后,我正在重新开始使用它。我正在使用 64 位 Linux Go 运行时版本 1.8.1。
我相信我正确地遵循了文档中的步骤,并且我相信我正在做过去正常工作的事情,但是我在尝试启动时遇到了这个错误dev_appserver.py
:
$ dev_appserver.py 。 INFO 2013-07-11 07:24:45,919 sdk_update_checker.py:244] 检查 SDK 更新。 INFO 2013-07-11 07:24:46,230 sdk_update_checker.py:288] 此 SDK 版本比宣传的版本更新。 警告 2013-07-11 07:24:46,443 simple_search_stub.py:955] 无法从 /tmp/appengine.batterybotinfo.darshan/search_indexes 读取搜索索引 回溯(最近一次通话最后): 文件“/home/darshan/bin/dev_appserver.py”,第 182 行,在 _run_file(__file__, globals()) _run_file 中的文件“/home/darshan/bin/dev_appserver.py”,第 178 行 execfile(script_path, globals_) 文件“/home/darshan/software/google_appengine/google/appengine/tools/devappserver2/devappserver2.py”,第 695 行,在 主要的() 文件“/home/darshan/software/google_appengine/google/appengine/tools/devappserver2/devappserver2.py”,第 688 行,在 main dev_server.start(选项) 文件“/home/darshan/software/google_appengine/google/appengine/tools/devappserver2/devappserver2.py”,第 659 行,开始 apis.start() 文件“/home/darshan/software/google_appengine/google/appengine/tools/devappserver2/api_server.py”,第 137 行,开始 超级(APIServer,自我).start() 文件“/home/darshan/software/google_appengine/google/appengine/tools/devappserver2/wsgi_server.py”,第 295 行,开始 如果 self._start_all_dynamic_port(host_ports): _start_all_dynamic_port 中的文件“/home/darshan/software/google_appengine/google/appengine/tools/devappserver2/wsgi_server.py”,第 348 行 server.start() 文件“/home/darshan/software/google_appengine/google/appengine/tools/devappserver2/wsgi_server.py”,第 194 行,开始 socket.SOCK_STREAM, 0, socket.AI_PASSIVE) TypeError: getaddrinfo() 参数 1 必须是字符串或无
我的第一个想法是我可能使用了不正确的 Python 版本。果然,我用的是 2.7.5,而且文档明确指出 2.5 是必须的。但是,文档似乎已经过时了,因为在安装 2.5 并将我的系统设置为使用它之后,我收到了这个错误:
错误:不支持 Python 2.5。请使用 2.7 版本。
好的,回到 2.7.5 和我最初的错误。
我不确定这是否是dev_appserver.py
Python 代码中的错误(我猜不是,因为它已经发布了一个月),我的 Python 安装问题,或者我的系统未根据配置的其他问题谷歌的期望。
除非必要,否则我宁愿不要乱用dev_appserver.py
代码,但我很乐意戳它以帮助找出问题所在。错误在第 194 行;这是第 190-195 行:
# AF_INET or AF_INET6 socket
# Get the correct address family for our host (allows IPv6 addresses)
host, port = self.bind_addr
try:
info = socket.getaddrinfo(host, port, socket.AF_UNSPEC,
socket.SOCK_STREAM, 0, socket.AI_PASSIVE)
我已经确定包含方法被调用了两次。第一次host
总是"127.0.0.1"
而且port
是0
。第二次是崩溃的;host
总是10
(一个整数,而不是字符串),并且port
是一个看似随机的五位整数。
我已经尝试对 or 进行硬编码host
,但随后"127.0.0.1"
又出现了另一个错误。我感到头晕目眩,我怀疑我不会通过改变我不太了解的事情来解决真正的问题。谷歌搜索错误消息没有帮助。port
8080
0