" gaierror是什么意思:[Errno -3]名称解析暂时失败"

时间:2016-10-25 11:21:38

标签: python sockets

我试图运行一个以错误结束的Flask应用程序。如果我追溯正在发生的事情,我可以使用以下iPython命令重现问题:

In [14]: import socket

In [15]: s = socket.socket()

In [16]: s.connect(('rabbitmq', 5672))
---------------------------------------------------------------------------
gaierror                                  Traceback (most recent call last)
<ipython-input-16-71a261d976b3> in <module>()
----> 1 s.connect(('rabbitmq', 5672))

/usr/lib/python2.7/socket.pyc in meth(name, self, *args)
    226 
    227 def meth(name,self,*args):
--> 228     return getattr(self._sock,name)(*args)
    229 
    230 for _m in _socketmethods:

gaierror: [Errno -3] Temporary failure in name resolution

我无法找到关于&#34;名称解析暂时失败&#34;的根本原因的大量文档。问题的一个可能原因是我试图在本地运行应用程序,而它通常在docker-compose环境中初始化。是什么原因造成了这个错误?

1 个答案:

答案 0 :(得分:8)

gaierror = G et A 地址 nfo 错误

名称解析暂时失败 =没有已知的DNS能够使用 rabbitmq 域的IP地址进行回答。

我想你不希望这是一个真正的域名。将/etc/hosts主机的条目放在s.connect(('rabbitmq', 5672))

或者改变:

s.connect(('IP.OF.RABBITMQ.SERVER', 5672))

成:

{{1}}

当然我指的是真正的IP而不是我在那里解释的虚拟字符串。