pip install 'requests[socks]' python -c "import socks; print(socks.__version__)"
本地装了 requests 之后代理请求正常,镜像里同一段代码报 Missing dependencies for SOCKS support。两边 pip list 里 requests 的版本一模一样。先别急着动参数,把报错原文和时间点记下来,顺序反了容易白折腾。
原因不复杂,requests 的 SOCKS 支持放在 socks 这个 extra 里,不写 extras 就不会装 PySocks。依赖声明分成必需和可选两组,只写包名拿到的永远是必需那组。
「extras 可选依赖」改完先别急着全量,挑一台机器放半天,真有问题这段时间就能看出来。改完隔一天再看一次,当场正常不代表能稳住。
测试环境和线上的差别,往往就在版本号和那几行被忽略的配置上。线上出问题先对时间点,跟发布、备份、任务执行的时刻排一排,能省掉一半功夫。
日志级别临时调高可以,记得改回去,长期开着既占磁盘又掩盖真问题。
处理上按这个顺序:看代码用到了哪个可选功能 对应包文档里的 extras 名字;安装时写 requests[socks] 或者在 requirements 里单独列 pysocks;注意 pip freeze 不会保留方括号 锁定文件要手工补;装完直接 import socks 验证 别只看 pip list。
改完只确认一件事:import socks 成功 代理请求不再报 Missing dependencies for SOCKS support。
