pip 是一个现代的,通用的 Python 包管理工具。提供了对 Python 包的查找、下载、安装、卸载的功能。

使用 Python 多年了,一直都坚持使用官方源的做法,结果被现实打脸了,下载一个包往往一个小时都不一定能够成功,不得不放弃了使用 Python 的念头。后来,偶尔知道了 pip 有国内源,大大加快了组件的下载速度,必须严重推荐。

听说曾经有以下这些国内源——

清华 https://pypi.tuna.tsinghua.edu.cn/simple/
阿里 https://mirrors.aliyun.com/pypi/simple/
豆瓣 https://pypi.doubanio.com/simple/
中科大 https://mirrors.ustc.edu.cn/pypi/web/simple/
官网 https://pypi.org/simple
华中理工 http://pypi.hustunique.com/
山东理工 http://pypi.sdutlinux.org/

2021年了,一些国内源已经不运营了,我也不习惯照抄网上的文章,所以这里是我的实践结果。

国内源的测评

地址 测试 速度
清华大学 https://pypi.tuna.tsinghua.edu.cn/simple ping pypi.tuna.tsinghua.edu.cn 62ms
阿里云 https://mirrors.aliyun.com/pypi/simple/ ping mirrors.aliyun.com 8ms
豆瓣 https://pypi.douban.com/simple/ ping pypi.douban.com 52ms

综上,推荐选择阿里云,不是网友清一色的推荐清华大学源和豆瓣源。

临时源配置

  1. 普通环境下操作示例:

     pipenv install <package>           -i <URL>
     pip install Django          -i https://pypi.doubanio.com/simple/
  2. 虚拟环境下的操作示例

     pipenv install <package>           --pypi-mirror <URL>
     pip install Django          --pypi-mirror https://mirrors.aliyun.com/pypi/simple/

永久源配置

  1. Windows 平台:在 %HOMEPATH% 路径下创建 pip 文件夹,再创建 pip.ini 文件,内容如下:

     [global]
     timeout = 6000
     index-url = https://mirrors.aliyun.com/pypi/simple/
     ;清华大学:https://pypi.tuna.tsinghua.edu.cn/simple
     ;阿里云:https://mirrors.aliyun.com/pypi/simple/
     ;豆瓣:https://pypi.douban.com/simple/
    
     [install]
     ;use-mirrors = true
     ;mirrors = https://pypi.tuna.tsinghua.edu.cn/simple
     trusted-host = https://mirrors.aliyun.com
  2. Linux 平台:在 ~/.pip/pip.conf 文件中增加上述内容。

  3. pipenv 等虚拟环境,只需要在相应的 Pipfile 中修改相应的 URL 内容即可,举例如下:

     [[source]]
     name = "pypi"
     #修改源提高锁定速度
     url = "https://mirrors.aliyun.com/pypi/simple"
    
     [[source]]
     name = "aliyun"
     url = "https://mirrors.aliyun.com/pypi/simple"
     verify_ssl = true

测试下载 pip install pandas 速度从 12kb/s 提升到 3Mb/s,妥妥地提升百倍以上速度不是梦!

致敬阿里云、清华大学、豆瓣这些为开源共享力量的单位!

上述内容,有些是三四年前梳理的,早忘了是参考了哪些文章了,有空再找找,然后补上来。
不过尴尬的是,天下文章一大抄,多数人都是乱写一通,不成体系,不辨真伪,实在是不堪入目!

参考文献

  1. PyPA.Installing Packages[EB/OL].https://packaging.python.org/tutorials/installing-packages/, 2021/01/17.