【问题标题】:How do I force pip to install from the last commit of a branch in a repo?如何强制 pip 从仓库中分支的最后一次提交安装?
【发布时间】:2017-11-24 20:27:06
【问题描述】:

我希望 pip 从我的 github 存储库的主分支上的最新提交安装。我尝试了 StackOverflow 上提到的许多选项,但都没有帮助。 例如,这不起作用:

pip install --upgrade --force-reinstall pathToGithubRepo

【问题讨论】:

  • 你试过this question的解决方案了吗?我认为如果你从一个 git 分支点它默认使用该分支上的最后一次提交。

标签: python pip


【解决方案1】:

以 numpy 的仓库为例。

如果你知道你感兴趣的commit的hash,你可以使用如下命令:

$ pip install -e git+https://github.com/numpy/numpy.git@75b2d5d427afdb1392f2a0b2092e0767e4bab53d#egg=numpy

其中75b2d5d427afdb1392f2a0b2092e0767e4bab53d 是 numpy 存储库的最新提交,numpy 是 egg 用于 pip 找出依赖关系的项目名称。


如果还想自动获取最新的提交哈希,可以使用命令:

$ git ls-remote  git@github.com:numpy/numpy.git | head -1 | awk '{print $1;}'
75b2d5d427afdb1392f2a0b2092e0767e4bab53d

Unix 不是白白发明的,让我们把它组合成一个大命令:

$ pip install -e git+https://github.com/numpy/numpy.git@$(git ls-remote  git@github.com:numpy/numpy.git | head -1 | awk '{print $1;}')#egg=numpy

将 numpy 替换为您的存储库 url 和项目名称,然后您就设置好了。

【讨论】:

    【解决方案2】:

    您可以使用标志--no-cache-dir 暂时禁用缓存并避免从已缓存的下载中安装,而是强制下载最近的提交。 (link to documentation)

    这看起来像

    pip install --upgrade --no-cache-dir [path to package location]
    

    以 Chardet 包为例,如下所示:

    pip install --upgrade --no-cache-dir https://github.com/chardet/chardet/archive/refs/heads/master.zip
    

    【讨论】:

      猜你喜欢
      • 2011-11-17
      • 2021-08-20
      • 1970-01-01
      • 2012-08-31
      • 2020-04-11
      • 2017-06-19
      • 2013-06-13
      • 1970-01-01
      • 2022-07-01
      相关资源
      最近更新 更多