pip无法安装任何包,安装Django时出现ReadTimeoutError报错
我在学习开发网站时,尝试在虚拟环境中执行pip install django安装Django,但终端反复出现超时错误,最终触发OSError。
报错信息
WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Read timed out. (read timeout=15)")': /packages/1d/23/02f3795a71196019bcfec4c67890a6369e43b023474154fa0b2b7060346d/Django-5.0.6-py3-none-any.whl.metadata
WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Read timed out. (read timeout=15)")': /packages/1d/23/02f3795a71196019bcfec4c67890a6369e43b023474154fa0b2b7060346d/Django-5.0.6-py3-none-any.whl.metadata
WARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Read timed out. (read timeout=15)")': /packages/1d/23/02f3795a71196019bcfec4c67890a6369e43b023474154fa0b2b7060346d/Django-5.0.6-py3-none-any.whl.metadata
WARNING: Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Read timed out. (read timeout=15)")': /packages/1d/23/02f3795a71196019bcfec4c67890a6369e43b023474154fa0b2b7060346d/Django-5.0.6-py3-none-any.whl.metadata
WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Read timed out. (read timeout=15)")': /packages/1d/23/02f3795a71196019bcfec4c67890a6369e43b023474154fa0b2b7060346d/Django-5.0.6-py3-none-any.whl.metadata
ERROR: Could not install packages due to an OSError: HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Max retries exceeded with url: /packages/1d/23/02f3795a71196019bcfec4c67890a6369e43b023474154fa0b2b7060346d/Django-5.0.6-py3-none-any.whl.metadata (Caused by ReadTimeoutError("HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Read timed out. (read timeout=15)"))
已尝试的无效方案
- 重装Python
- 在虚拟环境外安装Django
- 尝试安装其他包排查是否为Django的问题
- 切换CMD、Powershell执行命令
这类问题本质是pip默认的PyPI源访问超时,以下是几种直接有效的解决办法:
1. 增加pip超时时间
执行安装命令时延长超时阈值,给足够时间完成下载:
pip install django --timeout=60
如果还是超时,可以继续加大数值,比如--timeout=120。
2. 使用国内PyPI镜像源
国内镜像源访问速度更快,推荐使用:
# 临时使用清华镜像安装Django pip install django -i https://pypi.tuna.tsinghua.edu.cn/simple
如果想长期使用国内源,可配置pip默认源:
- 在用户目录下创建
pip文件夹(Windows路径:C:\Users\你的用户名\pip) - 新建
pip.ini文件,写入以下内容:
[global] index-url = https://pypi.tuna.tsinghua.edu.cn/simple
之后执行pip install django就会自动用清华源下载。
3. 手动下载whl包安装
如果上述方法都不行,可直接下载Django的whl包本地安装:
- 找到对应Python版本的Django whl包(比如
Django-5.0.6-py3-none-any.whl) - 下载到本地后,进入文件所在目录,执行:
pip install Django-5.0.6-py3-none-any.whl
4. 检查网络环境
确认当前网络是否能正常访问外网,或者尝试切换网络(比如从WiFi换成手机热点),排除网络本身的限制。
内容的提问来源于stack exchange,提问作者Ali Akbar Nemati

