1

在安装 Python 1.6(我能找到的唯一的 python .pet)后,在运行 Lucid 小狗 5.2 的旧笔记本电脑上运行和测试一些 IRC 机器人时,每隔几次我运行 python 文件,我就会收到这个奇怪的错误:

Traceback (most recent call last):
    File "bot.py!, line 77, in <module>
       irc.connect ( (irc_network, irc_port) ) 
    File "<string>", Line 1, in connect
socket.gaierror: [Errno -3] Temporary failure in name resolution

这是发生此错误的代码部分:

irc_network = 'irc.esper.net'
irc_port = 5555
irc = socket.socket ( socket.AF_INET, socket.SOCK_STREAM )
irc.connect ( ( irc_network, irc_port ) )

我只是为此使用该socket模块,没有任何第三方进口。我不知道这个错误是什么以及它意味着什么,因为一个快速的谷歌对我来说一无所获。

紫色的事实是,我可以再次尝试运行该机器人,而无需更改任何内容,并且运行良好。

感谢您的时间。

4

2 回答 2

1

我唯一能想到的是您的 DNS 解析器无法正常工作。在这里,这段代码运行良好。


顺便说一句(就像评论一样),如果你替换

irc = socket.socket ( socket.AF_INET, socket.SOCK_STREAM )
irc.connect ( ( irc_network, irc_port ) )

irc = socket.create_connection( ( irc_network, irc_port ) )

您更有未来的证明,因为您不会将自己限制在将在未来几十年内消失的旧协议中。

于 2012-07-06T09:52:54.333 回答
0

我只是有同样的问题。事实证明,我的 DNS 无法解析我的主机名,是草率地给了我的主机名而不是 host.node1.node2。所以查找你的主机名,如果它不起作用,那么你需要更具体,基本上你正在寻找你的 DNS A 或 Quad A 记录,并使用你的 DNS 可以解析的名称。另一种可能性是您还没有 DNS 列表。

于 2013-04-03T05:53:42.290 回答