背景交代:在下载matplotlib库时,我已经将pip的下载源手动更改为清华的镜像,所以,如果有小伙伴在下载库遇到问题,如timeout,请先将下载源改为国内镜像,具体操作见我的另一篇文章:
安装matplotlib,进行可视化
今天的主题是安装pandas库~
首先,按田字格+R,打开cmd,输入:pip install pandas
嗯,不出所料地报错了……
主要原因:
pip._vendor.urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Read timed out.
自从安装matplotlib库之后,自我感觉已经是一只装库老鸟了,遇到time out(超时)问题,首先想到是墙的问题。但是我之前已经把下载源改到国内的清华镜像了,因该不是墙,而是网速问题。
pip默认15秒就会超时,那就延长timeout时间为100秒
命令:pip install pandas --timeout 100
额,打脸了……
主要原因,还是超时问题:
有网友说,100不够用,那就赌把大的,嗯,我准备把timeout设为5000,过一晚上再来验收~哈哈哈
还没上床,就报错了,捂脸……
ERROR: THESE PACKAGES DO NOT MATCH THE HASHES FROM THE REQUIREMENTS FILE. If you have updated the package versions, please update the hashes. Otherwise, examine the package contents carefully; someone may have tampered with them.
有大佬说了,HASHES不MATCH可能是因为运行时间太长,所有需要缩短一点timeout时间,再试一次。并且增加--upgrade命令。
命令:pip install --upgrade --default-timeout=1000 pandas
运行过于缓慢,我真的要睡了……
一大早起来,又报错了……哭……
核心问题还是timeout:
pip._vendor.urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Read timed out.
继续修改timeout参数为2000:
命令:pip install --upgrade --default-timeout=2000 pandas
虽然还是报错了,但是它有明显进步!第一个下载是完成了的~之前一直没有走完第一步……第二个下载也是完成了的,而且这次用时缩短为半个小时。
ERROR: Could not install packages due to an EnvironmentError: [WinError 5] 拒绝访问。: 'c:\\program files\\python38\\Lib\\site-packages\\pytz'
Consider using the `--user` option or check the permissions.
可见,问题出在环境上,说是没有权限,并建议在命令中添加--user选项。
尝试命令:pip install --upgrade --user --default-timeout=2000 pandas
成功了!!!
失败是成功他娘,真的不假。之前虽然一直没有成功,但是为最后这次尝试打下了较好的基础,命令一执行,几秒钟内就成功了!这速度,让人不敢相信~哈哈哈
运行过程常常出现Using cached https:.……这几个字,表示之前那些失败的尝试缓存了不少东西,所以这次执行才这么快~
检验是否真的安装成功:
没有报错,则说明真的安好了~~~~开心
关于timeout问题一点经验总结:
如果第一次报错,说timeout,那我们可以延长timeout的时间,如100秒。
如果第二次报错,还是timeout,说明第timeout延长为100可能不够用,需要继续延长,如设置为5000。
如果第三次报错,说HASH值不匹配,那有可能是我们timeout整太大,需要缩小一点,如设置为2000。
大致规律就是,如果timeout了,那就增大timeout的值,如果HASH不匹配了,那就减小timeout的值。