我试图运行一个以错误结束的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环境中初始化。是什么原因造成了这个错误?
答案 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而不是我在那里解释的虚拟字符串。