gaierror: [Errno 8] Knotenname noch servname bereitgestellt, oder nicht bekannt (mit macOS Sierra)
Buchse.gethostbyname(socket.gethostname()) gearbeitet, auch auf OS X El Capitan. Jedoch, es funktioniert nicht jetzt nach dem Mac aktualisiert, um macOS Sierra.
Dank!
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
- Stellen Sie sicher, Datei
/etc/hosts
enthält127.0.0.1 localhost
. - Danke! Ich habe $ sudo nano /etc/hosts und fand 127.0.0.1 localhost schon da. Funktioniert immer noch nicht.
- Herzlich willkommen auf Stack Overflow! Bitte beachten Sie unsere SO Frage Checkliste um zu helfen, Sie zu bitten, eine gute Frage, und bekommt so eine gute Antwort.
- Vielleicht ist die Reihenfolge der Ergebnisse verändert hat? sollten Sie ausdrucken der Informationen aus der Vermittler-Anrufe, um zu sehen, was Los ist
- socket.gethostname() funktioniert: 'FBLs-MBP.local'.
- Und $ ping 'FBLs-MBP.local " führt zu ping: cannot resolve FBLs-MBP.Ort: Unbekannter host, während ping an die IP-Adresse gut funktioniert.
- Verwandte Frage: stackoverflow.com/questions/39968792/...
- Funktioniert immer noch nicht. Aber das problem kann nun lokalisiert werden: $ ping 'FBLs-MBP.local " führt zu ping: cannot resolve FBLs-MBP.Ort: Unbekannter host auf macOS Sierra. Irgendwelche Ideen dazu? Danke!
- Das Problem ist gelöst. Danke Jungs! apple.stackexchange.com/questions/253817/...
- Es stellte sich heraus, dass ich habe den gleichen Fehler, hatte aber nicht einen FQDN eingegeben. Nach der Verwendung von FQDN an, den dieser Fehler gestoppt. (ex. Benutzer gibt "google" und nicht "google.com")
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist eine Antwort, die in OP ' s Kommentare basierend auf eine andere Frage,
das erfordert, zu Bearbeiten
/etc/hosts
ich.eecho 127.0.0.1 $HOSTNAME >> /etc/hosts
.Alternativ können Sie
socket.gethostbyname('localhost')
, unter der Annahme, dasslocalhost
ist, was Sie brauchen, und es ist definiert in Ihrem/etc/hosts
.Gleiche problem tome.
Ich ändern Sie den code:
Und es funktioniert jetzt.
Ich hatte das gleiche Problem. Ich war nicht in der Lage, ping localhost.
Änderte ich meine hosts-Datei.
Fügen Sie diese zu der Datei (verwenden Sie die Tab/4 Leerzeichen zum trennen>> 127.0.0.1{tab/4spaces}localhost) auf, Speichern Sie es und starten Sie das terminal.
Bestätigen, wenn alles einwandfrei funktioniert, versuchen Sie, mit Ping localhost annimmt
Ich hatte das gleiche problem heute (mit MacOS Mojave) und war in der Lage, es zu beheben mit der link, dass @FBL in die Kommentare.
Speziell, ich musste einfach gehen Sie zu System-Einstellungen - > Freigabe und aktivieren Sie die Freigabe. (Ich aktiviertem Drucker-sharing). Dann habe ich überprüft, es funktioniert über
ping $HOST
. Danach konnte ich die Freigabe wieder deaktiviert und alles (sowohlping $HOST
undpython -c 'import socket; print socket.gethostbysocketname(socket.gethostname())
) noch funktionierte.