执行pipenv lock与pipenv install时触发TooManyRedirects异常求助
解决pipenv lock/install时的TooManyRedirects错误
我之前处理过好几个类似的案例,这个错误基本上都是PyPI源的重定向问题或者网络配置导致的,下面给你几个实用的解决方案:
首先先明确你遇到的报错:
执行
pipenv lock和pipenv install时触发的异常详情:Locking [dev-packages] dependencies… ", line 475, in request resp = self.send(prep, **send_kwargs) File "/usr/lib/python3.6/site-packages/pipenv/vendor/requests/sessions.py", line 617, in send history = [resp for resp in gen] if allow_redirects else [] File "/usr/lib/python3.6/site-packages/pipenv/vendor/requests/sessions.py", line 617, in <listcomp> history = [resp for resp in gen] if allow_redirects else [] File "/usr/lib/python3.6/site-packages/pipenv/vendor/requests/sessions.py", line 110, in resolve_redirects raise TooManyRedirects('Exceeded %s redirects.' % self.max_redirects, response=resp) requests.exceptions.TooManyRedirects: Exceeded 30 redirects.
解决方案1:更换稳定的PyPI镜像源
默认的PyPI源在国内访问有时候会出现重定向问题,换成国内的镜像源就能解决大部分这类问题:
- 临时指定源运行命令:直接在执行命令时加上镜像参数
pipenv install --pypi-mirror https://pypi.tuna.tsinghua.edu.cn/simple pipenv lock --pypi-mirror https://pypi.tuna.tsinghua.edu.cn/simple - 永久配置源:修改项目根目录下的
Pipfile文件,把默认的source地址替换成国内镜像:
修改保存后再重新运行[[source]] url = "https://pypi.tuna.tsinghua.edu.cn/simple" verify_ssl = true name = "pypi"pipenv install或pipenv lock即可。
解决方案2:检查并调整代理设置
如果你的网络环境使用了代理,可能是代理配置错误导致了无限重定向循环:
- 先尝试关闭代理再运行命令:
unset HTTP_PROXY unset HTTPS_PROXY pipenv install - 如果必须使用代理,请确认代理地址、端口配置正确,没有设置错误的重定向规则。
解决方案3:更新pipenv到最新版本
旧版本的pipenv可能存在重定向处理的bug,更新到最新版本通常能解决这类兼容性问题:
pip install --upgrade pipenv
更新完成后再执行你的pipenv lock或pipenv install命令试试。
内容的提问来源于stack exchange,提问作者Californian
相关产品推荐
相关产品推荐

