1. ホーム
  2. python

[解決済み] gaierror.の意味を教えてください。[Errno -3] 名前解決の一時的な失敗"

2022-01-30 07:22:49

質問

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

名前解決の一時的な失敗の根本的な理由について、あまりドキュメントを見つけることができませんでした。この問題の原因として考えられるのは、通常は docker-compose 環境で初期化されるアプリを、ローカルで実行しようとしていることです。このエラーの原因について何か思い当たることはありますか?

解決方法は?

ガイエラー = G エト A ドレス I 情報 エラー

名前解決に一時的な障害が発生した = のIPアドレスで応答できた既知のDNSはありません。 ラビットエムキュー ドメインになります。

まさかこれが本当のドメイン名とは思っていないでしょう。のエントリーを入れてください。 rabbitmq のホストを /etc/hosts .

または変更します。

s.connect(('rabbitmq', 5672))

に入っています。

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

もちろん、説明のために入れたダミーの文字列ではなく、実際のIPを意味しています。