Requests 或 HTTPX 缺少 SOCKS 依赖
安装对应客户端的 SOCKS 扩展,并确认脚本使用的 Python 环境就是安装依赖的环境。
缺少 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 模式。