【问题标题】:Is it possible to use pip to install the latest tag?是否可以使用 pip 安装最新的标签?
【发布时间】:2016-02-18 18:21:57
【问题描述】:

可以使用 pip 安装特定标签:

pip install -e git+ssh://git@github.com/{usr}/{repo}.git@{tag}#egg={egg}

但是,我似乎无法找到一种方法让它指向最新版本(这将是 releases/latest),而不仅仅是指向 master 的 HEAD。有可能吗?

一个约束,它必须使用 ssh。

【问题讨论】:

  • 嗯,你为什么不简单地指定标签的确切提交ID?
  • @cel 提交对它们没有任何意义,而我可以告诉某人安装 1.0.3 版或其他东西。我不想每次发布版本时都更新我的 README,我希望我的用户使用最新版本。

标签: python pip


【解决方案1】:

如果您使用的是 python 包,这是一种方法:


setup.py

import setuptools
import urllib.request


deps = [
    {
        'name': 'gunicorn',
        'url': 'github.com/benoitc/gunicorn',
    },
]

for i in range(len(deps)):
    tag_url = urllib.request.urlopen(f"https://{deps[i]['url']}/releases/latest").geturl()
    latest_tag = tag_url.split('/')[-1]
    deps[i] = f"{deps[i]['name']} @ git+ssh://{deps[i]['url']}@{latest_tag}"

setuptools.setup(
    install_requires=deps,
)


然后在本地安装包

python -m pip install .

【讨论】:

  • 很酷的解决方案!问:为什么不只是tag_url.split('/')[-1] 而不是tag_url.split('/')[::-1][0]
  • @Icnittl 好收获
猜你喜欢
  • 1970-01-01
  • 2012-03-19
  • 1970-01-01
  • 2019-05-29
  • 1970-01-01
  • 2011-06-17
  • 2017-01-26
  • 2018-10-23
  • 1970-01-01
相关资源
最近更新 更多