- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
在一段时间未使用 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] Checking for updates to the SDK.INFO 2013-07-11 07:24:46,230 sdk_update_checker.py:288] This SDK release is newer than the advertised release.WARNING 2013-07-11 07:24:46,443 simple_search_stub.py:955] Could not read search indexes from /tmp/appengine.batterybotinfo.darshan/search_indexesTraceback (most recent call last): File "/home/darshan/bin/dev_appserver.py", line 182, in _run_file(__file__, globals()) File "/home/darshan/bin/dev_appserver.py", line 178, in _run_file execfile(script_path, globals_) File "/home/darshan/software/google_appengine/google/appengine/tools/devappserver2/devappserver2.py", line 695, in main() File "/home/darshan/software/google_appengine/google/appengine/tools/devappserver2/devappserver2.py", line 688, in main dev_server.start(options) File "/home/darshan/software/google_appengine/google/appengine/tools/devappserver2/devappserver2.py", line 659, in start apis.start() File "/home/darshan/software/google_appengine/google/appengine/tools/devappserver2/api_server.py", line 137, in start super(APIServer, self).start() File "/home/darshan/software/google_appengine/google/appengine/tools/devappserver2/wsgi_server.py", line 295, in start if self._start_all_dynamic_port(host_ports): File "/home/darshan/software/google_appengine/google/appengine/tools/devappserver2/wsgi_server.py", line 348, in _start_all_dynamic_port server.start() File "/home/darshan/software/google_appengine/google/appengine/tools/devappserver2/wsgi_server.py", line 194, in start socket.SOCK_STREAM, 0, socket.AI_PASSIVE)TypeError: getaddrinfo() argument 1 must be string or None
My first thought was that I might be using an incorrect version of Python. Sure enough, I'm using 2.7.5, and the documentation clearly states that 2.5 is necessary. However, the documentation seems to be outdated, because after installing 2.5 and setting my system to use it, I got this error:
Error: Python 2.5 is not supported. Please use version 2.7.
Okay, so back to 2.7.5 and my initial error.
I'm not sure if this is a bug in the dev_appserver.py
Python code (I'm guessing not, as it's been out for a month), an issue with my Python installation, or something else about my system that isn't configured according to Google's expectations.
I'd rather not mess with the dev_appserver.py
code unless necessary, but I'm happy to poke at it to help figure out what's going wrong. The error is on line 194; here are lines 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
(一个 int,而不是一个字符串),port
是一个看似随机的五位数 int。
我已经尝试将 host
硬编码为 "127.0.0.1"
并将 port
硬编码为 8080
或 0
,但随后出现另一个错误。我感到头晕目眩,我怀疑我不会通过改变我并不真正理解的事情来解决真正的问题。谷歌搜索错误消息没有帮助。
最佳答案
坚持不懈的谷歌搜索最终得到了返回。尽管this question有一个非常不同(并且信息量更大)的错误消息,结果证明解决方案是相同的:确保 /etc/hosts
仅包含一个用于 localhost
的条目。
值得注意的是,我的系统包含以下两行:
127.0.0.1 localhost
::1 localhost
注释掉第二个(并添加注释以记录原因)解决了我的问题:
127.0.0.1 localhost
# Having multiple localhost entries causes App Enginge dev_appserver.py to fail.
# IPv6 not currently needed, and the dev server IS needed, so commenting out.
#::1 localhost
dev_appserver.py
现在启动并正常工作。
关于python - "getaddrinfo() argument 1 must be string or None"在 Linux 上启动 dev_appserver.py 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17588699/
我目前正在升级我们的软件以支持 ipv6,同时我正在将主机名/ip 字段扩展到最大主机名大小。在 sun 文档中,它似乎可以达到 1025(netdb.h:#define NI_MAXHOST 102
我正在使用 docker-compose 为开发人员提供技术栈 ROR、postgres、redis、mongo 的开发环境。 docker-compose build 运行成功,但是当我运行 doc
nc -zv cms-01 5061 失败: nc: getaddrinfo: 没有与主机名关联的地址 但是 ping/dig 工作正常。用getent可以看到最不一样的地方: # getent ho
我正在测试一条错误路径,该路径要求我删除来自 getaddrinfo 的请求。我设置了 2 个虚拟机: RHEL 7.9 Ubuntu 20 代码在两台机器上是相同的,只是为 test.com 调用
当我调用 getaddrinfo与 AF_UNSPEC ,理论上它可以返回任何它喜欢的地址族:AF_INET , AF_INET6 ,也许是 AppleTalk、蓝牙、datalink、netlink
我花了几个小时试图找出我的问题,只是在我写问题的时候找到了解决方案(当你需要正式化你的问题并解释它时,它总是有帮助的)。我发布它,希望它可以帮助某人。 使用 getaddrinfo,如果我尝试将套接字
我尝试通过给 getaddrinfo 赋予 http(s) 前缀来使用它,但它无法正确查找主机。我该如何解决这个问题。我要查 https://www.google.com但 gai_strerror(
我想在我的 header 中定义一个端口号(例如 #define port 9191 )并使用它来调用 getaddrinfo() 。但我收到错误,因为参数服务是 char const* 。如何使用#
我对 getaddrinfo() 的行为有疑问,这似乎取决于服务参数的指定方式。将服务指定为名称会导致 getaddrinfo() 使用 getservbyname() 来查询/etc/service
我有一个程序(用 C 语言编写),它使用 getaddrinfo() ,它的第一个参数是我希望它获取地址信息的主机名,假设它是“域”。在同一台计算机上的 /etc/hosts 文件中,我可以看到“do
int print_socket_info(int sock_fd, struct sockaddr_in *sin, short protocol){ char dbg[INET_ADDRS
这个问题已经存在: Login and Registration in Android with PHP, MySQL and SQLite 已关闭 7 年前。 我正在尝试连接到我的 mysql wa
我想连接sql数据库。我究竟做错了什么?请帮忙 常量.php 连接.php 最佳答案 首先,您的 constants.php 文件似乎在开始的 PHP 标记中有错字。您应该按如下方式更新文件:
我目前正在尝试编写自己的 HTTP 代理。我的代码可以正常工作,但我尝试使用 ApacheBench 对其进行压力测试,发现时不时地收到如下消息: “getaddrinfo:提供了节点名或服务名,或者
我正在使用 getaddrinfo() API 来解析跨平台 C++ 应用程序中的 DNS 查询。我需要知道 getaddrinfo() 在不同平台上的时间成本?谁能帮我解决这个问题? 最佳答案 这个
我有一个使用套接字的程序。在客户端,我通过 getaddrinfo 获取必要的信息,然后将结果传递给连接函数。事情是,它在不同的环境中工作不同。在获取 addrinfo 结构并将其传递给 connec
我有一个网络地址,例如 - 192.168.74.0/24。尝试使用 getaddrinfo 获取网络地址转换似乎不起作用。这里的名称是 192.168.74.0/24。 getaddrindo 的返
所以我花了一段时间才弄明白,因为“段错误”没有显示任何代码行,但显然这会导致我的程序出现段错误: if (getaddrinfo(options.servername, (char *)options
我遇到了一个奇怪的问题。我有这个 Python 应用程序,当我尝试在应用程序中打开 url 时,例如 urllib2.urlopen("http://google.com", None) 我收到以下错
我在 LAN 中用于某些套接字通信应用程序的目标机器具有用于 IPv4 的 192.168.98.91。 当我尝试使用 getaddrinfo() 解析 IP 地址时,它返回 127.0.0.1 如何
我是一名优秀的程序员,十分优秀!