关于加速 pip 安装的两点妙招。
- 2019 年 11 月 7 日
- 筆記
写在之前
众所周知,pip 是一个用来安装和管理 Python 包的工具,随着大家使用 Python 的时间越来越长,就会发现一个问题,那就是用 pip 安装包的时候有时候会很慢,甚至直接就是不可用。因为关注我公众号的读者们很大一部分是初学者,所以我在后台也经常会碰到有人问这种问题,这个在大佬们眼中不是问题的问题在很多小白看来无疑是个不知道如何去解决的问题,索性我就专门写这么一篇文章,来统一说一下这个问题。
其实这个是因为 pypi.python.org 不太稳定造成的,毕竟是外网的东西。pypi.python.org 是 Python 的官方第三方软件存储库,我们的 pip 其实就是从这个网站上下载我们需要的库,大佬们将写好的库打包上传到 pypi.python.org 上,我们就使用 pip 进行安装。
在这可能有人会有问题,那如果大佬们没有将我需要的那个打包上传,那咋整?我们“省心省力”的 Python 早就替我们想好了,这个也有一套标准的流程。比如我们尝试从源码安装 **(我在这里只是单纯说一下方法),你可以用如下方式去做:
git clone 源码的git地址 cd ** python setup.py install
下面再回到正题上来,我就介绍一下我知道的两个 pip 安装加速的小妙招。
使用镜像
其实说到底,我们从 pypi.python.org 上 pip 不稳定的原因还是因为网络不稳定。那我们换个想法,那是不是从网络比较稳定的服务器上下载就可以了呢?其实还真是这样。在国内目前有不少的 pypi 镜像源,比如阿里源,豆瓣源,清华源等等等等,我之前还发现过我本科母校 SDUT 的源,Orzzzz。这么多的源,推荐大家使用阿里的或者豆瓣的,毕竟厂子大,稳的很。
如果要使用这种第三方源,很简单,只需要在安装的时候,pip 命令的 -i 选项指定一下源即可,比如我想使用豆瓣源安装 django,可以像下面这样:
pip install -i https://pypi.douban.com/simple/ django
当然了,这种每次下载都要带着源,刚开始安装一个两个的还好,安装的多了也太麻烦了,这时候我们可以直接修改 pip 的配置文件,将源写进配置文件中。linux 系统的文件在 ~/.pip/pip.conf,windows 系统在 %HOMEPATH%pippip.ini。然后在文件中加入并保存如下内容:
[global] index-url = http://pypi.douban.com/simple [install] trusted-host=pypi.douban.com
这样我们以后在使用 pip 安装的时候,就会默认调用你所用的镜像源。
下载到本地
这种方法是比较适合于项目上,比如你克隆一个项目想在本地跑跑,你就得下载项目所需要的包,你总不能运行的时候看到缺了哪个再去下载哪个吧,且不说累死累活的,你也不知道人家用的是哪个版本的包啊,有时候同一个包的不同版本会出现很多玄学问题。
所以有经验的,一般都会在项目里带一个 requirements.txt 文件,用来写入自己项目所使用的包以及版本(当然 pycharm 会自动识别并且下载这个文件的安装包)。可以用如下的方法将系统已经安装的安装包列表导出到 requirements 文件:
pip freeze > requirements.txt
碰到这种需要安装很多包或者安装的包比较大的情况,一般考虑的是将包先下载到本地,然后从本地安装。ps:如果服务器连接不到外网,也可以用这种方法。具体操作如下分下面两步:
1.下载到本地
pip install --download='pwd' -r requirements.txt
2. 本地安装
pip install --no-index -f file://'pwd' -r requirements.txt
使用上述这种方式只需要下载一次,就可以多次安装,且完全不用担心网络的问题。
写在之后
最近文章更新比较不稳定,主要自己最近一段时间比较忙,好多事情堆在一起,有很多东西要学。还有加上最近体质莫名很弱,上个星期发烧好几天,这刚好了没两天,今天早上起床的时候又成了鼻涕虫,难受的一批,我都不知道最近去健身房到底去了些什么鬼。
我一个在北方活了二十多年的,被最近上海隔个一两天就来一天雨的天气深深的打败了,感觉到很大的恶意,大家注意保暖,切记不要浪,等过了这一阵儿争取稳定输出,虽然不知道这一阵儿什么时候过去(逃。