gaierror: [Errno 8] nodename или servname предоставлено или неизвестно (с macOS Sierra)

socket.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

python,sockets,

14

Ответов: 3


15

Существует ответ в комментариях Op, основанный на другой вопрос, который требует редактирования /etc/hosts, то есть echo 127.0.0.1 $HOSTNAME >> /etc/hosts.

В качестве альтернативы вы можете использовать socket.gethostbyname('localhost'), считая, что localhostэто то, что вам нужно, и оно определено в вашем /etc/hosts.


3

Та же проблема. Я меняю код на:

import socket
socket.gethostbyname("")

И это работает сейчас.


0

У меня была такая же проблема. Я не смог выполнить ping localhost.

ping localhost

>> error ping: cannot resolve localhost: Unknown host

Я изменил файл hosts.

sudo nano / etc / hosts

Добавьте это в файл (используйте вкладку / 4 пробела для разделения >> 127.0.0.1 {tab / 4spaces} localhost) Сохраните его и перезапустите терминал.

127.0.0.1 localhost

Чтобы убедиться, что все работает нормально, попробуйте выполнить ping-адрес вашего локального хоста

ping localhost

Python, розетки,
Похожие вопросы