缺少 SOCKS 依赖属于本地 Python 安装问题。Requests 与 HTTPX 使用不同的可选软件包,应安装脚本实际导入的客户端所需的扩展。

Requests

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

Requests 使用 PySocks。安装该依赖后,socks5h:// 代理 URL 会将目标 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 模式。

相关文章