【问题标题】:Caching remote repository for pip installs为 pip 安装缓存远程存储库
【发布时间】:2015-03-25 08:13:07
【问题描述】:

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

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

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

有什么方法可以要求在本地缓存这个 repo? 或者,将其打包并保持本地可用的最佳解决方案是什么?

【问题讨论】:

    标签: python git caching pip


    【解决方案1】:

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

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

    pip install -e -r requirements.txt
    

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

    您可以将 pip 安装的结果缓存为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
    

    但是,车轮不会从存储库中更新。

    【讨论】:

    • -e 实际上走错了方向,它不仅每次都克隆 repo,而且还重建/重新安装包:(
    • @Martin:你可以在包中使用git pull 来获取更新的版本。您是想安装多个 virtualenv,还是想用最新的更改更新现有的 virtualenv?
    猜你喜欢
    • 1970-01-01
    • 2012-12-19
    • 2018-11-29
    • 1970-01-01
    • 2014-11-13
    • 2018-04-24
    • 2021-10-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多