gaierror:[Errno 8]提供了nodename或servname,或者不知道(与macOS Sierra一起)

2024-04-25 20:45:14 发布

您现在位置:Python中文网/ 问答频道 /正文

gethostbyname(socket.gethostname())在OS X El Capitan上运行良好。但是,在Mac升级到macOS Sierra之后,它现在不工作了。

谢谢!

import socket
socket.gethostbyname(socket.gethostname())

Traceback (most recent call last):
  File "<pyshell#26>", line 1, in <module>
    socket.gethostbyname(socket.gethostname())
gaierror: [Errno 8] nodename nor servname provided, or not known

Tags: importmostosmacmacossocketcallel
3条回答

我今天也遇到了同样的问题(MacOS Mojave),并且能够使用注释中提供的link修复它。

具体来说,我只需转到“系统首选项”->;“共享”并启用共享。(我启用了打印机共享)。然后我通过ping $HOST验证了它的工作。之后,我可以关闭共享,所有的东西(包括ping $HOSTpython -c 'import socket; print socket.gethostbysocketname(socket.gethostname()))仍然工作。

OP的评论中有一个基于another question,的答案 需要编辑/etc/hosts,即echo 127.0.0.1 $HOSTNAME >> /etc/hosts

或者,您可以使用socket.gethostbyname('localhost'),假设localhost是您需要的,并且它是在/etc/hosts中定义的。

我也有同样的问题。 我将代码更改为:

import socket
socket.gethostbyname("")

现在它开始工作了。

相关问题 更多 >