Een ontbrekende SOCKS-afhankelijkheid is een lokaal Python-installatieprobleem. Requests en HTTPX gebruiken verschillende optionele pakketten; installeer de extra voor de client die je script importeert.

Requests

uv add 'requests[socks]'
uv run python -c 'import requests, socks; print(requests.__version__)'

Requests gebruikt PySocks. Na installatie van die afhankelijkheid delegeert een proxy-URL met socks5h:// de DNS-resolutie van het doel aan de SOCKS-proxy. Het eindpunt zelf moet een SOCKS-dienst bieden.

HTTPX

uv add 'httpx[socks]'
uv run python -c 'import httpx, socksio; print(httpx.__version__)'

HTTPX gebruikt socksio; installatie van requests[socks] levert de HTTPX-extra niet mee.

Al geïnstalleerd?

Een terminal, IDE, notebookkernel en geplande taak kunnen verschillende Python-omgevingen gebruiken. Controleer de interpreter waarmee het falende script draait:

uv run python -c 'import sys; print(sys.executable)'

Voer de importcontrole in diezelfde omgeving uit. Zodra die slaagt, probeer je het verzoek opnieuw met een begrensde time-out; latere authenticatie-, verbindings- of SOCKS-antwoordfouten gaan over de verbinding zelf. Heb je voor die volgende test openbare eindpunten nodig, bekijk dan de SOCKS5-proxylijst en houd de client in de passende SOCKS-modus.

Gerelateerde artikelen