Запросы Python HTTPConnectionPool и Max повторные попытки превышены с url
в кластере Linux я получаю эту ошибку с запросами:
ConnectionError: HTTPConnectionPool (host= 'andes-1-47', port=8181): Макс повторные попытки превышены с url: / jammy / api / v1 (вызвано:")
Что означает эта ошибка означает? Это проблема с запросами или это на хосте, и каково решение?
кстати, программа успешно работает как на Windows, так и на Linux автономных машинах с localhost.
2 ответов
так Max retries exceeded with url: ...
бит может быть очень запутанным. По всей вероятности (поскольку вы упомянули, что это работает с использованием localhost), это приложение, которое вы где-то развертываете. Это также объясняет, почему имя хоста andes-1-47
и не то, что большинство ожидало бы (например,example.com
). Мое лучшее предположение, что вам нужно либо использовать IP-адрес для andes-1-47
(например, 192.168.0.255
) или ваш кластер linux не знает, как разрешить andes-1-47
и вы должны добавить его в свой (т. е., добавление строки:192.168.0.255 andes-1-47
).
если вы хотите узнать, может ли ваш кластер linux разрешить имя, вы всегда можете использовать этот скрипт:
import socket
socket.create_connection(('andes-1-47', 8181), timeout=2)
это будет тайм-аут в течение 2 секунд, если вы не можете разрешить имя хоста. (Вы можете удалить тайм-аут, но может потребоваться гораздо больше времени, чтобы определить, достижимо ли имя хоста таким образом.)
на urlopen
вызова, попробуйте установить retries=False
или retries=1
чтобы увидеть разницу. Значение по умолчанию:3
, которое звучит вполне разумно.