web-dev-qa-db-fra.com

gaierror: [Errno 8] nom_noeud ni nom_serveur fourni ou inconnu (avec macOS Sierra)

socket.gethostbyname (socket.gethostname ()) fonctionnait bien sous OS X El Capitan. Cependant, cela ne fonctionne plus maintenant, après la mise à jour du Mac sous MacOS Sierra.

Merci!

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
19
FBL

Il y a une réponse dans les commentaires de OP basée sur une autre question, Qui nécessite de modifier /etc/hosts, i.e echo 127.0.0.1 $HOSTNAME >> /etc/hosts.

Sinon, vous pouvez utiliser socket.gethostbyname('localhost'), en supposant que localhost est ce dont vous avez besoin et qu'il est défini dans votre /etc/hosts

19
Armut

Même problème tome . Je change le code en:

import socket
socket.gethostbyname("")

Et ça marche maintenant.

7
jxc

J'avais le même problème. Je n'ai pas pu cingler localhost.

ping localhost

>> error ping: cannot resolve localhost: Unknown Host

J'ai changé mon fichier hosts.

Sudo nano/etc/hosts

Ajoutez ceci au fichier (utilisez les tabulations/4 pour séparer >> 127.0.0.1 {tab/4spaces} localhost) Enregistrez-le et redémarrez le terminal.

127.0.0.1 localhost 

Pour vérifier si tout fonctionne bien, essayez d’envoyer une requête à votre hôte local.

ping localhost 

0
a_dino

J'ai eu le même problème aujourd'hui (avec MacOS Mojave) et j'ai pu le résoudre en utilisant le link that @FBL fourni dans les commentaires.

Plus précisément, je devais simplement aller dans Préférences Système -> Partage et activer le partage. (J'ai activé le partage d'imprimante). Ensuite, j'ai vérifié que cela fonctionnait via ping $Host. Ensuite, j'ai pu désactiver le partage et tout (à la fois ping $Host et python -c 'import socket; print socket.gethostbysocketname(socket.gethostname())) fonctionnait toujours.

0
Chris Reyes