如何解决pip安装软件包时的ReadTimeoutError与包找不到问题(非conda环境)
解决pip安装超时及sklearn包找不到的问题
Hey Mina, let's fix this issue for you—you've got two key things going on here, so we'll tackle them one by one:
1. 先纠正一个小误区:sklearn不是正确的包名
PyPI上没有名为sklearn的正式维护包(它只是一个过时的空占位包),你实际需要安装的是**scikit-learn**,这是机器学习库的官方包名。不过你提到安装任何包都会超时,所以我们先解决网络问题,再验证这个点。
2. 解决pip连接超时的核心问题
既然所有包安装都出现ReadTimeoutError,说明你的网络连接官方PyPI源(pypi.org)速度过慢或不稳定,试试下面几种实用方案:
方案一:延长pip的超时时间
临时增加超时阈值,给pip足够的时间完成下载:
pip install --default-timeout=100 scikit-learn
这里把超时设为100秒,你可以根据自己的网络情况调整数值。
方案二:使用国内PyPI镜像源(最推荐)
国内镜像源的下载速度快很多,基本不会出现超时问题:
临时使用:每次安装时直接指定镜像地址:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple scikit-learn常用的国内镜像还有阿里云(
https://mirrors.aliyun.com/pypi/simple/)、豆瓣(https://pypi.doubanio.com/simple/)等,选你访问最快的即可。永久配置镜像:以后每次pip安装都自动用镜像,不用重复加参数:
- 在你的用户目录(
C:\Users\Mina)下新建一个名为pip的文件夹 - 在这个文件夹里创建
pip.ini文件,写入以下内容:[global] index-url = https://pypi.tuna.tsinghua.edu.cn/simple
或者直接用命令行一键配置:
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple- 在你的用户目录(
方案三:配置代理(如果你的网络需要代理访问外网)
如果你的网络是通过代理连接外网的,需要给pip配置代理信息:
- 临时使用代理:
pip install --proxy=http://你的代理地址:端口号 scikit-learn - 永久配置代理:在刚才的
pip.ini里添加代理配置:[global] index-url = https://pypi.tuna.tsinghua.edu.cn/simple proxy = http://你的代理地址:端口号
验证解决方案
等网络问题解决后,执行正确的安装命令:
pip install scikit-learn
这样就能顺利安装机器学习库了。
内容的提问来源于stack exchange,提问作者mina




