这类问题我又碰上了一次。内网机器 pip 走 Nexus 代理,装 torch 2.4 时回 403 Forbidden,报错指向 /repository/pypi-proxy/torch/,同一台机器装 requests 正常,浏览器能打开 Nexus 首页,运维说白名单只开了部分域名。

第一反应是「镜像里 pip.conf 指向了只读仓库,写入被拒」,验证下来不成立。

这类报错背后常见的原因有几处,逐个排除就行。Nexus 代理的上游白名单没包含 download.pytorch.org;torch 的 wheel 走的是 extra index,不是 PyPI 主源;代理账号没有该仓库的读权限。

第一件事是看 pip 实际用的源与报错行

pip config list; pip install torch==2.4.0 -v 2>&1 | grep -i 'Looking in indexes\|403'

接着确认 Nexus 是否代理了 PyPI 主源

curl -s -o /dev/null -w '%{http_code}\n' http://nexus.internal/repository/pypi-proxy/simple/torch/

然后改用能通的主源加官方 extra index

pip install torch==2.4.0 --index-url http://nexus.internal/repository/pypi-proxy/simple --trusted-host nexus.internal

或让运维把 pytorch 仓库加入白名单

curl -s -o /dev/null -w '%{http_code}\n' http://nexus.internal/repository/pytorch-proxy/simple/torch/

这类改动我都写进变更记录,过两周再出问题时能对上号。

改完先别撤,确认这几项。pip 能拉到 torch 的 wheel 并完成安装,import torch 打印出版本号,构建镜像时不再因 403 中断。

403 是权限或白名单问题而不是网络不通,先区分主源和 extra index,再找运维加仓库,比换镜像源更快。报错文案容易误导,真正的原因往往在相邻那一层的日志里。

作者 9823189