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
我今天也遇到了同样的问题(MacOS Mojave),并且能够使用注释中提供的link修复它。
具体来说,我只需转到“系统首选项”->;“共享”并启用共享。(我启用了打印机共享)。然后我通过
ping $HOST
验证了它的工作。之后,我可以关闭共享,所有的东西(包括ping $HOST
和python -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
中定义的。我也有同样的问题。 我将代码更改为:
现在它开始工作了。
相关问题 更多 >
编程相关推荐