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
Ответы
Ответ 1
В комментариях OP есть ответ на еще один вопрос.
который требует редактирования /etc/hosts
, i.e echo 127.0.0.1 $HOSTNAME >> /etc/hosts
.
В качестве альтернативы вы можете использовать socket.gethostbyname('localhost')
, считая, что localhost
- это то, что вам нужно, и оно определено в вашем /etc/hosts
.
Ответ 2
Та же проблема.
Я меняю код на:
import socket
socket.gethostbyname("")
И теперь это работает.
Ответ 3
У меня была та же проблема сегодня (с MacOS Mojave), и я смог ее исправить, используя ссылку, которую @FBL предоставил в комментариях.
В частности, мне просто нужно было перейти в Системные настройки → Общий доступ и включить общий доступ. (Я включил общий доступ к принтеру). Затем я убедился, что он работает через ping $HOST
. После этого я смог снова отключить общий доступ, и все (как ping $HOST
, так и python -c 'import socket; print socket.gethostbysocketname(socket.gethostname())
) все еще работало.
Ответ 4
У меня была такая же проблема. Я не смог пропинговать localhost.
ping localhost
>> error ping: cannot resolve localhost: Unknown host
Я изменил файл хостов.
sudo nano/etc/hosts
Добавьте это в файл (используйте пробелы Tab/4 для разделения >> 127.0.0.1 {tab/4spaces} localhost) Сохраните его и перезапустите терминал.
127.0.0.1 localhost
Чтобы проверить, все ли работает нормально, попробуйте проверить связь с вашим локальным хостом
ping localhost
Ответ 5
Если вы используете ноутбук Jupyter или нет, попробуйте это
IP4=str(ipaddress.ip_address(8888))
IPAddr = socket.gethostbyname(IP4)
не забудьте импортировать ipaddress & разъем