Я кодировал и тестировал некоторые библиотеки, которые в основном взаимодействуют со службами REST, и заметил, что некоторым из них требуется несколько минут для запуска. После профилирования кода я обнаружил, что 98% времени выполнения используется _socket.gethostbyname
. Ниже 1 вы найдете профиль для метода, выполняющего вызовы REST.
Существует обходной путь для преодоления этого, но он кажется неуклюжим (не говоря уже о том, что я должен копировать его везде):
import platform
# Workaround for osx systems
if platform.system() == 'Darwin':
import socket
socket.gethostbyname = lambda x: '127.0.0.1'
Это фрагмент о том, как я использую requests-mock
пакет:
with requests_mock.mock() as m:
m.register_uri('GET', my_url, text=json.dumps({"foo": "bar"}))
Есть какие-нибудь подсказки, в чем может быть проблема? Похоже, что это влияет только на системы OSX.
1