前言

做python开发的时候,我们需要用到很多第三方提供的包作为支撑,由于这些包很多都是来自国外,导致经常可能下载失败,甚至连接超时等问题发生,这些都是非常可恼的,严重影响了我们codeing的正常水平。正对这一问题,后来就出现了换源的概念,就是把第三方包的下载地址放在国内镜像源。这样速度就有了质的提升。下面就看看国内常用换源网站,以及如何换源的。

常见换源网站

  1. 清华:https://pypi.tuna.tsinghua.edu.cn/simple
  2. 阿里云:http://mirrors.aliyun.com/pypi/simple/
  3. 中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
  4. 华中理工大学:http://pypi.hustunique.com/
  5. 山东理工大学:http://pypi.sdutlinux.org/
  6. 豆瓣:http://pypi.douban.com/simple/

亲自测试下载TensorFlow,342.5 MB的TF10分钟就下载完毕。每个网站的下载快慢未曾试过,可以自己亲试,本人习惯用清华源。

使用换源实现快速下载方法

换源方法很简单,只需在终端程序执行如下命令即可,这里已下载tensorflow 为例(使用的是清华源)
如果你使用的是python3.0以上版本使用一下命令:

pip3 install tensorflow -i https://pypi.tuna.tsinghua.edu.cn/simple/

如果你使用的是python3.0以下版本使用一下命令:

pip install tensorflow -i https://pypi.tuna.tsinghua.edu.cn/simple/

好了,这样这样操作换源的目的就达到了。是不是非常简单。

是否百分百解决问题了

但是这样就非常完美了吗,其实这样也不一定成功,只不过相对于没有换源而言,成功率要高出很多,但是也会失败。如下所示:

(base) PS C:\Users\Administrator> pip3 install tensorflow -i https://pypi.tuna.tsinghua.edu.cn/simple/
Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple/
Collecting tensorflowDownloading https://pypi.tuna.tsinghua.edu.cn/packages/61/e1/1e713485caee272e7be779ac10bb0cec36ace3d9f981e067a9105a736791/tensorflow-2.3.1-cp38-cp38-win_amd64.whl (342.5 MB)|▌                               | 5.8 MB 36 kB/s eta 2:32:24ERROR: Exception:
Traceback (most recent call last):File "C:\ProgramData\Anaconda3\lib\site-packages\pip\_vendor\urllib3\response.py", line 425, in _error_catcheryieldFile "C:\ProgramData\Anaconda3\lib\site-packages\pip\_vendor\urllib3\response.py", line 507, in readdata = self._fp.read(amt) if not fp_closed else b""File "C:\ProgramData\Anaconda3\lib\site-packages\pip\_vendor\cachecontrol\filewrapper.py", line 62, in readdata = self.__fp.read(amt)File "C:\ProgramData\Anaconda3\lib\http\client.py", line 454, in readn = self.readinto(b)File "C:\ProgramData\Anaconda3\lib\http\client.py", line 498, in readinton = self.fp.readinto(b)File "C:\ProgramData\Anaconda3\lib\socket.py", line 669, in readintoreturn self._sock.recv_into(b)File "C:\ProgramData\Anaconda3\lib\ssl.py", line 1241, in recv_intoreturn self.read(nbytes, buffer)File "C:\ProgramData\Anaconda3\lib\ssl.py", line 1099, in readreturn self._sslobj.read(len, buffer)
socket.timeout: The read operation timed outDuring handling of the above exception, another exception occurred:Traceback (most recent call last):File "C:\ProgramData\Anaconda3\lib\site-packages\pip\_internal\cli\base_command.py", line 188, in _mainstatus = self.run(options, args)File "C:\ProgramData\Anaconda3\lib\site-packages\pip\_internal\cli\req_command.py", line 185, in wrapperreturn func(self, options, args)File "C:\ProgramData\Anaconda3\lib\site-packages\pip\_internal\commands\install.py", line 332, in runrequirement_set = resolver.resolve(File "C:\ProgramData\Anaconda3\lib\site-packages\pip\_internal\resolution\legacy\resolver.py", line 179, in resolvediscovered_reqs.extend(self._resolve_one(requirement_set, req))File "C:\ProgramData\Anaconda3\lib\site-packages\pip\_internal\resolution\legacy\resolver.py", line 362, in _resolve_oneabstract_dist = self._get_abstract_dist_for(req_to_install)File "C:\ProgramData\Anaconda3\lib\site-packages\pip\_internal\resolution\legacy\resolver.py", line 314, in _get_abstract_dist_forabstract_dist = self.preparer.prepare_linked_requirement(req)File "C:\ProgramData\Anaconda3\lib\site-packages\pip\_internal\operations\prepare.py", line 467, in prepare_linked_requirementlocal_file = unpack_url(File "C:\ProgramData\Anaconda3\lib\site-packages\pip\_internal\operations\prepare.py", line 255, in unpack_urlfile = get_http_url(File "C:\ProgramData\Anaconda3\lib\site-packages\pip\_internal\operations\prepare.py", line 129, in get_http_urlfrom_path, content_type = _download_http_url(File "C:\ProgramData\Anaconda3\lib\site-packages\pip\_internal\operations\prepare.py", line 281, in _download_http_urlfor chunk in download.chunks:File "C:\ProgramData\Anaconda3\lib\site-packages\pip\_internal\cli\progress_bars.py", line 166, in iterfor x in it:File "C:\ProgramData\Anaconda3\lib\site-packages\pip\_internal\network\utils.py", line 15, in response_chunksfor chunk in response.raw.stream(File "C:\ProgramData\Anaconda3\lib\site-packages\pip\_vendor\urllib3\response.py", line 564, in streamdata = self.read(amt=amt, decode_content=decode_content)File "C:\ProgramData\Anaconda3\lib\site-packages\pip\_vendor\urllib3\response.py", line 529, in readraise IncompleteRead(self._fp_bytes_read, self.length_remaining)File "C:\ProgramData\Anaconda3\lib\contextlib.py", line 131, in __exit__self.gen.throw(type, value, traceback)File "C:\ProgramData\Anaconda3\lib\site-packages\pip\_vendor\urllib3\response.py", line 430, in _error_catcherraise ReadTimeoutError(self._pool, None, "Read timed out.")
pip._vendor.urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='pypi.tuna.tsinghua.edu.cn', port=443): Read timed out.

你会看见,我们意见使用了换源命令,但是下载了一半还是失败,我们仔细看一下报错信息,你会发现这样一条信息,如下所示:

_error_catcherraise ReadTimeoutError(self._pool, None, "Read timed out.")
pip._vendor.urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='pypi.tuna.tsinghua.edu.cn', port=443): Read timed out.

这是什么意思了,明细就是在读取的实时出现了远程主机读取超时问题,至于为什会超时,问题有很多,比如服务稳定性不好,导致请求长时间没有响应;又或者网络不好,出现了波动,这些都是有可能的,那么如何解决这种问题,我想到了比较好的解决方案。

大家都做过http网络请求,知道客户端在连接服务器端时,请求是可以设置超时时长的,比如读写超时,请求超时等,最常用的就是如下三种超时配置:

 .connectTimeout(20, TimeUnit.SECONDS).readTimeout(20, TimeUnit.SECONDS).writeTimeout(20, TimeUnit.SECONDS)

在这里,我们就把pip果冻工具当做clent端,也给他做一个超时设置即可。下面就介绍一下如何在Windows和linux系统设置pip换源超时问题。

Linux换源超时解决方案

Linux系统处理比较简单,这里先讲解Linux,这里以Linux下修改pip源(CentOS为例)

  1. 首先进入到root目录下的pip隐藏文件目录中(没有就创建)
  2. 在pip目录中新建pip.conf文件
  3. 在pip.conf文件中配置如下配置即可:
[global]
timeout = 60
index-url = http://pypi.douban.com/simple/
[install]
trusted-host = pypi.douban.com

4:执行换源命令进行下载:

 pip3 install tensorflow -i https://pypi.tuna.tsinghua.edu.cn/simple/

是不是很简单,只要三步简单的配置就可以搞定,下面介绍一下Windows。

Windows换源超时解决方案

Windows相对linux比较复杂一点,好了,接下来是配置方法:

  1. 按住 Win+R 键,打开运行窗口:输入
%APPDATA%

如下图所示:

然后回车,会打开一个文件(C:\Users\Administrator\AppData\Roaming),打开后找到pip文件夹,如果没有就新建一个,如下图所示:

2. 进入pip文件,新建一个pip.ini的配置文件(新建文本文件将后缀名改成 .ini)
3. 配置pip.ini配置文件,配置内容如下:

[global]
timeout = 6000
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
trusted-host = pypi.tuna.tsinghua.edu.cn

配置参数说明

参数 说明
timeout 设置超时时间
index-url 换源的url地址,可以是清华源,也可以是阿里云,具体自定
trusted-host 主机host地址
  1. 输入换源命令,实现换源下载。
 pip3 install tensorflow -i https://pypi.tuna.tsinghua.edu.cn/simple/

好了,只要你按照以上方法实现换源配置,那么pip换源命令使用起来将非常的快速,真的是飕飕的感觉。

pip换源,解决pip下载超时,连接失败等问题相关推荐

  1. pip安装,pip换源没用,没变化,失败,命令指令。conda换源

    下面的指令只测试在anaconda环境下 pip安装 这里只介绍用anaconda安装pip的方法,那就是不用安装.conda新建一个环境之后肯定要安装python包,装python时候pip自动就安 ...

  2. 换源解决pip超时问题: pip._vendor.urllib3.exceptions.SSLError

    操作: (tensorflow_venv) songroom@DESKTOP-MEDPUTU:~$ pip install -i https://pypi.tuna.tsinghua.edu.cn/s ...

  3. linux下pip换源——修改pip.conf文件

    本文转至:linux下更换pip源 在linux对pip进行换源,直接修改pip.conf文件即可. 该文件路径:/home/[用户]/.config/pip/ 终端:gedit /home/wjl/ ...

  4. 【环境搭建】linux上pip换源

    [环境搭建]linux上pip换源 使用apt下载pip3 源码编译安装pip3 linux上pip换源 结语 使用apt下载pip3 sudo apt-get install python3-pip ...

  5. 手把手教你在Linux系统下进行Python pip换源操作

    点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 世间无限丹青手,一片伤心画不成. ...

  6. Python——windows下pip换源 和 自动生成和安装requirements.txt

    当自己电脑(Windows系统)装python的第三方包出现timeout时,一般就是下载速度太慢了.采取的方法可以跟换pip的下载源. 转载文章的链接:[python]windows下pip换源 P ...

  7. pip换源及指令的使用

    pip换源及指令的使用 文章目录 pip换源及指令的使用 一.pip换源命令 1.临时使用: 2.永久修改 (1)Linux: (2)Windows 二.pip指令的使用 一.pip换源命令 pip国 ...

  8. 手把手教你进行pip换源,让你的Python库下载嗖嗖的

    主题 Python /1 前言/ 今天我们来说说python的pip换源吧,这个换源,相对来说,还是比较重要的,能让自己少生好几次气的,哈哈哈! /2 为什么要换源/ ​ 我们搞python的,肯定离 ...

  9. pip更换源 windows10_Conda及Pip换源处理

    Pip 换源 在 user home 目录下新建一个 ~/.pip/pip.config 文件,添加如下配置: [global] index-url = https://pypi.tuna.tsing ...

最新文章

  1. 红牛开发板模拟器简要说明_V1.0
  2. nessus国内用户不让免费使用了!
  3. C++(十)——模板(上)
  4. 鸿蒙是学生开发的系统,9岁小学生展示鸿蒙OS开发
  5. Linux awk编辑器及命令
  6. 磁盘性能分析一:IO负载高的判断详解
  7. 基于http的netty demo
  8. 视频PPT互动问答丨数据库智能运维专题
  9. 怎么能更好地利用好大数据分析
  10. Spring整合CXF发布及调用WebService
  11. Windows XP英文版安装中文语言包来解决无法显示中文的方法
  12. LabVIEW查找范例的使用举例
  13. Pandas速查手册中文版(转)
  14. python题库选择题刷题训练_python题库刷题训练开源到了Github
  15. layabox 打印_Layabox 集成指南
  16. php 中文网qq互联,QQ互联在tp中的运用
  17. java编程基础总结——20.foreach遍历及lambda表达式
  18. Vue项目打包文件过大(优化)
  19. JT/T 808-2019、JT/T 809-2019文档分享
  20. QQ2012如何恢复“合并会话窗口”为多个聊天窗口?

热门文章

  1. Java跳转显示未找到,找不到index.jsp页面,没有跳转
  2. python为什么那么多人用_为什么那么多人在学Python?
  3. vue window.location.href 返回页面不刷新_前端框架vue中的keep-alive总结实践
  4. javascript将内嵌式广告隐藏
  5. 3800元!爆料大神怒赞谷歌Pixel 6:这是今年最好看手机!
  6. 荣耀V40联合天猫推出上门取旧送新服务 还可12期免息
  7. 标致雪铁龙与菲亚特克莱斯勒宣布完成合并 新股1月19日纽交所上市
  8. 苏宁启动30周年庆:联合近300个品牌启动“超级品牌季”
  9. 华为Mate40系列安兔兔跑分曝光:麒麟9000性能超骁龙865
  10. 一亿像素下放!Redmi Note 10系列相机曝光:长焦微距全都有