Tengo un problema extraño con Python en macOS Sequoia durante los últimos días. No ocurrió justo después de la actualización, funcionó inicialmente. Python en Terminal.app no puede resolver ninguna consulta DNS. Sin embargo, la consola de Python y la Terminal integrada en PyCharm funcionan perfectamente.
Aquí tienes un ejemplo; el comando http
es HTTPie, un utilitario basado en Python:
% http google.com
http: error: gaierror: [Errno 8] nodename nor servname provided, or not known
No se pudo resolver el nombre de host proporcionado. Por favor, verifica la URL e intenta nuevamente.
% python3
Python 3.12.6 (principal, Sep 6 2024, 19:03:47) [Clang 16.0.0 (clang-1600.0.26.3)] en darwin
Escribe "help", "copyright", "credits" o "license" para obtener más información.
>>> import socket
>>> socket.getaddrinfo('google.com', 80)
Rastreo (llamada más reciente):
Archivo "", línea 1, en
Archivo "/opt/homebrew/Cellar/python@3.12/3.12.6/Frameworks/Python.framework/Versions/3.12/lib/python3.12/socket.py", línea 976, en getaddrinfo
for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
socket.gaierror: [Errno 8] nodename nor servname provided, or not known
>>> ^D
% curl google.com
...
% dig google.com
...
;; SECCIÓN DE RESPUESTA:
google.com. 41 IN A 142.250.184.206
;; Tiempo de consulta: 14 msec
;; SERVIDOR: 192.168.178.1#53(192.168.178.1)
;; CUÁNDO: Vie Oct 04 10:13:02 CEST 2024
;; TAMAÑO DEL MENSAJE rcvd: 55
% http -v 142.250.184.206
GET / HTTP/1.1
Accept: */*
Accept-Encoding: gzip, deflate
Connection: keep-alive
Host: 142.250.184.206
User-Agent: HTTPie/3.2.3
HTTP/1.1 301 Moved Permanently
...
Como puedes ver, las conexiones de red en general están bien, solo las consultas DNS no pueden resolverse. Se agotan después de unos 30 segundos. Sin embargo, lo mismo dentro de PyCharm funciona bien.
He leído que las variables de entorno HTTP_PROXY
pueden ser un problema, pero no las tengo configuradas.
No sé lo suficiente sobre la resolución de DNS y cómo Python la utiliza para saber ni siquiera dónde buscar. ¿Alguna idea?