GitLab构建时执行pip install遇pypi.org ReadTimeoutError求助
解决pip install读取PyPI超时的方案
针对你遇到的GitLab构建时pip install -r requirements.txt出现ReadTimeoutError的问题,给出以下实用解决方法:
延长pip超时时间:默认15秒的超时阈值在网络波动时极易触发失败,修改Dockerfile中的命令,增加超时参数:
RUN pip install --default-timeout=100 -r requirements.txt可根据实际网络情况调整超时数值(比如300秒)。
切换国内PyPI镜像源:国际链路不稳定是这类问题的常见诱因,改用国内镜像能大幅提升访问速度,示例命令:
RUN pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn --default-timeout=100 -r requirements.txt(
--trusted-host用于规避HTTPS证书相关警告)排查Runner容器网络细节:
ping pypi.org仅能检测基础连通性,无法反映TCP读取阶段的问题。进入GitLab Runner容器,执行curl -v https://pypi.org/simple/django/,查看是否能完整返回页面内容,以此判断是否存在链路丢包或隐性限制。检查服务器资源负载:构建期间服务器CPU、内存或带宽被占满,会导致pip进程无法及时读取数据。可在构建时同步监控服务器资源使用情况,确认是否有其他进程抢占资源。
拆分依赖安装批次:如果requirements.txt中依赖数量较多,一次性安装容易因持续连接超时失败,可拆分多个RUN命令分批安装,例如:
RUN pip install --default-timeout=100 django==x.x.x RUN pip install --default-timeout=100 -r requirements.txt
内容的提问来源于stack exchange,提问作者Omkommersind
相关产品推荐
相关产品推荐

