@Lenciel

打开pip的download cache

Python的标准库实在是不够用,所以一个很常见的情况是我们需要在每个项目使用的virtualenv里面都安装一些常用的库。

为了加速安装的过程,有两个小窍门。

一个是使用国内的源,比如v2ex提供的。只需要新建或者编辑~/.pip/pip.conf,加入一行:

1
2
[global]
index-url = http://pypi.v2ex.com/simple

另一个就是打开pip的download cache,这样可以避免pip每次都去下载相同的东西。只需要在.bashrc或者是.zshrc里面加入一行:

1
export PIP_DOWNLOAD_CACHE=$HOME/.pip-download-cache

给Python标准库充电

Python的自荐页面About Python上号称自家的标准库是"batteries included"的,但实际情况却不是这样。对Python标准库的批评几乎从来没有中断过。著名的Python包Requests的作者甚至决定永久把Requests保持为第三方库而拒绝加入标准库,他的理由是:加入标准库就会死翘翘

再举个例子,我们最近的项目里面都用到了pytz。标准库里面的datetime是支持时区的(tzinfo类),但是并没有包含时区信息(tzinfo是抽象类需要自己实现)。遵照前人的经验使用pytz是最好的办法^1

所以不奇怪的是,几乎所有的Python项目都会引用一堆优秀的第三方库。为了管理这些依赖一般都会用上pip:

  • 在项目里面用pip freeze生成一个requirement.txt文件
  • 在创建virtualenv的时候使用之前生成的文件安装所有的依赖

为了不在每次运行pip install -r requirements.txt的时候都下载一堆依赖,你还可以打开pip的download cache。如果整个公司在做项目的时候都需要经常使用一些包,甚至可以考虑做一个Pypi的库来共享,类似于Maven的Repo。