Mar*_*tin 6 python git caching pip
在我的pi需求文件中,我需要各种repos的特定提交,即:
git+http://github.com/frankban/django-endless-pagination.git@725bde91db#egg=django-endless-pagination
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是它显然需要pip来为每次安装重新克隆repo,完全忽略默认的下载缓存.
有没有办法要求在本地缓存此repo?或者,或者,最好的解决方案是打包并保持包在本地可用?
您可以做两件事:使用可编辑的 install,或将安装结果缓存为轮子。
使用-e
switch 会导致pip
将存储库克隆到src
virtualenv的子目录中;然后,您可以在每次要重新安装时重复使用该副本:
pip install -e -r requirements.txt
Run Code Online (Sandbox Code Playgroud)
皮普然后就重新使用现有的源每次重新运行命令(git的更新,而不是在回购的全新副本拉)的时间,或者因为安装使用实际的工作目录,你可以只使用git pull
在src/django-endless-pagination
反而。
您可以将 pip install的结果缓存为Python Wheel:
pip wheel --wheel-dir=/tmp/wheelhouse -r requirements.txt
Run Code Online (Sandbox Code Playgroud)
这将安装所有要求并为每个/tmp/wheelhouse
. 然后,您可以重新使用操舵室进行后续安装:
pip install --use-wheel --no-index --find-links=/tmp/wheelhouse -r requirements.txt
Run Code Online (Sandbox Code Playgroud)
但是,不会从存储库更新轮子。