缓存pip安装的远程存储库

时间:2015-01-26 20:29:15

标签: python git caching pip

在我的pi需求文件中,我需要各种repos的特定提交,即:

git+http://github.com/frankban/django-endless-pagination.git@725bde91db#egg=django-endless-pagination

我遇到的问题是它显然需要pip来为每次安装重新克隆repo,完全忽略默认的下载缓存。

有没有办法要求在本地缓存此repo? 或者,或者,最好的解决方案是打包并保持包在本地可用?

1 个答案:

答案 0 :(得分:4)

您可以做两件事:使用editable install,或将安装结果缓存为方向盘。

使用-e开关导致pip将存储库克隆到virtualenv的src子目录中;然后,您可以在每次要重新安装时重复使用该副本:

pip install -e -r requirements.txt

Pip然后每次重新运行命令时重新使用现有的源代码(从git更新而不是拉入一个全新的repo副本),或者,因为安装使用实际的工作目录,所以你可以只需在git pull中使用src/django-endless-pagination代替。

您可以将pip install的结果缓存为Python Wheel

pip wheel --wheel-dir=/tmp/wheelhouse -r requirements.txt

这将安装所有要求,并为/tmp/wheelhouse中的每个创建轮子。然后,您可以重新使用驾驶室进行后续安装:

pip install --use-wheel --no-index --find-links=/tmp/wheelhouse -r requirements.txt

然而,轮子不会从存储库更新。