Poetry执行install/update时报TooManyRedirects超30次重定向错误
Poetry 自定义二级源报Exceeded 30 redirects错误修复
问题场景
在项目pyproject.toml中添加了自定义二级Poetry源配置:
... [[tool.poetry.source]] name = "REPO_NAME" url = "https://gitlab.com/SOME_ADDRESS" secondary = true
执行poetry install/poetry update操作时,依赖解析阶段运行14秒左右抛出异常:
Updating dependencies Resolving dependencies... (14.3s)
TooManyRedirects
Exceeded 30 redirects.
依赖安装、更新流程直接中断。
解决方法
按优先级依次排查修复即可:
- 修正源地址格式
绝大多数这类重定向报错都是源地址填错导致的。GitLab的PyPI包仓库必须使用带/simple后缀的拉包专用地址,不能填项目网页地址、不带simple后缀的仓库根地址,这类地址访问包索引路径时会触发连续跳转,很快就会触发30次重定向上限。 - 补全私有源鉴权配置
如果你的自定义源是私有仓库,先执行鉴权配置命令,避免未授权访问触发的反复跳转:
注意个人访问令牌需要有poetry config http-basic.REPO_NAME <你的GitLab用户名> <你的个人访问令牌>read_package_registry权限。 - 升级Poetry版本
如果前两步配置都没问题还是报错,直接把Poetry升级到1.2以上的稳定版本。1.2之前的旧版本对重定向过程中的鉴权信息透传、跨地址跳转处理有已知bug,会导致本可以正常跟随的重定向被循环触发。 - 定位具体异常请求
排查时可以加-vvv参数执行更新命令,输出全量请求日志,直接看是哪个包的拉取请求触发了重定向链,核对跳转地址是否符合预期即可快速定位问题:poetry update -vvv
内容的提问来源于stack exchange,提问作者Tsvi Sabo
相关产品推荐
相关产品推荐

