在我的pi需求文件中,我需要各种repos的特定提交,即:
git+http://github.com/frankban/django-endless-pagination.git@725bde91db#egg=django-endless-pagination
我遇到的问题是它显然需要pip来为每次安装重新克隆repo,完全忽略默认的下载缓存。
有没有办法要求在本地缓存此repo? 或者,或者,最好的解决方案是打包并保持包在本地可用?
答案 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
然而,轮子不会从存储库更新。