socket.gethostbyname(socket.gethostname()) werkte goed op OS X El Capitan. Het werkt nu echter niet meer nadat de Mac is geüpdatet naar macOS Sierra.
Bedankt!
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
Antwoord 1, autoriteit 100%
Er is een antwoord in de opmerkingen van OP gebaseerd op een andere vraag,
waarvoor /etc/hosts
moet worden bewerkt, d.w.z. echo 127.0.0.1 $HOSTNAME >> /etc/hosts
.
Als alternatief kunt u socket.gethostbyname('localhost')
gebruiken, ervan uitgaande dat localhost
is wat u nodig heeft en gedefinieerd is in uw /etc/hosts
.
Antwoord 2, autoriteit 48%
Hetzelfde probleem deel.
Ik verander de code in:
import socket
socket.gethostbyname("")
En het werkt nu.
Antwoord 3, autoriteit 13%
Ik had vandaag hetzelfde probleem (met MacOS Mojave) en kon het oplossen met de linkdie @FBLheeft opgegeven in de opmerkingen.
In het bijzonder moest ik gewoon naar Systeemvoorkeuren -> Delen en delen inschakelen. (Ik heb printerdeling ingeschakeld). Daarna heb ik geverifieerd dat het werkte via ping $HOST
. Daarna kon ik het delen weer uitschakelen en alles (zowel ping $HOST
als python -c 'import socket; print socket.gethostbysocketname(socket.gethostname())
) werkte nog steeds.
Antwoord 4, autoriteit 6%
Het lijkt op een python-bug? U moet de hostnaam & ipv4 , hierna kunt u het repareren.
import socket
hostname = socket.gethostname()
print(hostname) >> samzong
# make sure do it
!echo "127.0.0.1 samzong" >> /private/etc/hosts
Antwoord 5, autoriteit 3%
Gebruik in plaats van de localhost de computernaam zoals gespecificeerd in /etc/hosts.
Bijvoorbeeld, /etc/host zou zoiets als dit hebben:
127.0.0.1 ET02282-MAC.local
127.0.0.1 localhost
En gebruik in uw verbinding “ET02282-MAC.local”
Antwoord 6, autoriteit 3%
Een andere eenvoudige oplossing is:
Ga terminal plakken sudo nano /etc/hosts
vind uw ip-adres dat nodig is, IPv4 enz.
voeg een nieuwe regel toe zoals
190.123.123.3 Uwterminalnaam.local
het werkte voor mij
Antwoord 7
Ik had hetzelfde probleem. Ik kon localhost niet pingen.
ping localhost
>> error ping: cannot resolve localhost: Unknown host
Ik heb mijn hosts-bestand gewijzigd.
sudo nano /etc/hosts
Voeg dit toe aan het bestand (gebruik Tab/4 spaties om>> 127.0.0.1{tab/4spaces}localhost te scheiden) Sla het op en start de terminal opnieuw.
127.0.0.1 localhost
Probeer je localhost te pingen om te controleren of alles goed werkt
ping localhost
Antwoord 8
Als u Jupyter-notebook gebruikt of niet, probeer dit dan
IP4=str(ipaddress.ip_address(8888))
IPAddr = socket.gethostbyname(IP4)
vergeet niet om ipaddress & stopcontact