【问题标题】:Is it possible to install with pip a version range of a package from a private github repository?是否可以使用 pip 安装来自私有 github 存储库的包的版本范围?
【发布时间】:2018-07-05 21:06:45
【问题描述】:

我正在使用私有 github 存储库来安装软件包:

pip install --upgrade git+ssh://git@github.com/myuser/mypackage.git#egg=mypackage

在 requirements.txt 中如下所示:

git+ssh://git@github.com/myuser/mypackage.git#egg=mypackage

之后,我为版本控制添加了 git 标签,例如:

git+ssh://git@github.com/myuser/mypackage.git@0.1.9#egg=mypackage

如何定义版本范围,例如从 0.1.9 到 1.0.0,如下例:

git+ssh://git@github.com/myuser/mypackage.git@0.1.9<1.0.0#egg=mypackage

或者是否可以使用 git master 分支并使用 pip 定义版本范围,如下所述:How to pip install a package with min and max version range?

【问题讨论】:

  • Git 标签不是包元数据中的版本说明符,可以是任何东西,因此没有为它们提供比较机制。
  • @hoefling 你知道是否可以使用 git master 分支并使用 pip 定义版本范围,如下所述:stackoverflow.com/questions/8795617/…
  • 如果您从 git 分支安装,这意味着您从该分支当前指向的确切提交安装。任何版本范围都没有空间。

标签: python git pip


【解决方案1】:

由于 pip+git 没有任何版本范围的空间,我将使用一种解决方法并编写一个 python 脚本来完成它。这不是最优雅的方法,但它会起作用,也许有人会找到更好的方法。

这是我为面临相同问题的人提供的解决方法:

  1. 编写一个贯穿我的 requirements.txt 的 pthon 脚本

  2. 使用 &lt;git-repo&gt;&lt;version range&gt; 提取自己的 git-repos

  3. python脚本会调用一个子进程来获取repo的标签列表:

    git ls-remote -t &lt;git-repo&gt;

  4. 将python脚本中定义范围内的标签提取为列表,取最大值

  5. 安装给定范围内最高的提取版本

【讨论】:

    猜你喜欢
    • 2011-06-17
    • 1970-01-01
    • 2018-12-13
    • 2020-11-20
    • 2023-03-18
    • 2020-11-19
    • 1970-01-01
    • 2013-09-23
    • 2017-03-08
    相关资源
    最近更新 更多