Адсутная залежнасць SOCKS — праблема лакальнай устаноўкі Python. Requests і HTTPX выкарыстоўваюць розныя неабавязковыя пакеты, таму ўсталюйце дапаўненне для кліента, які імпартуе скрыпт.

Requests

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

Requests выкарыстоўвае PySocks. Пасля ўсталявання залежнасці URL проксі socks5h:// перадае DNS прызначэння проксі SOCKS. Сам вузел павінен прадастаўляць SOCKS-сэрвіс.

HTTPX

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

HTTPX выкарыстоўвае socksio; устаноўка requests[socks] не дае дапаўнення HTTPX.

Ужо ўсталявана?

Тэрмінал, IDE, ядро notebook і запланаванае заданне могуць выкарыстоўваць розныя асяроддзі Python. Праверце інтэрпрэтатар, які запускае праблемны скрыпт:

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

Праверце імпарт у тым самым асяроддзі. Пасля поспеху паўтарыце запыт з абмежаваным тайм-аўтам; далейшыя памылкі аўтэнтыфікацыі, злучэння або адказу SOCKS датычацца самога злучэння. Калі для наступнага тэста патрэбныя публічныя вузлы, паглядзіце спіс SOCKS5-проксі і пакіньце кліент у адпаведным рэжыме SOCKS.

Падобныя артыкулы