用Pants构建的Python程序中的版本支持

2024-03-28 14:52:19 发布

您现在位置:Python中文网/ 问答频道 /正文

如何让Pantsgit describe的输出存储在我的.pex文件的某处,以便我可以从我正在编写的Python代码中访问它?你知道吗

基本上,我希望能够克隆my project并执行以下操作:

  1. ./pants binary px
  2. 把结果dist/px.pex分发给某人
  3. 当我在第一步中构建.pex时,某人应该能够执行px.pex --version并得到git describe所说的任何内容的打印输出。你知道吗

救命啊!你知道吗


Tags: 文件代码gitproject内容versionmydist
1条回答
网友
1楼 · 发布于 2024-03-28 14:52:19

结果是pex已经在生成时git describe。它将结果存储在PEX-INFO文件根目录下的.pex文件中。所以为了阅读它,我做了这样一件事:

def get_version():
    """Extract version string from PEX-INFO file"""
    my_pex_name = os.path.dirname(__file__)
    zip = zipfile.ZipFile(my_pex_name)
    with zip.open("PEX-INFO") as pex_info:
        return json.load(pex_info)['build_properties']['tag']

这在我看来已经足够好了,但也有缺点。如果有人有一个更好的答案,我准备把它作为被接受的答案。你知道吗

这次停电:

  • 依赖相对路径来定位PEX-INFO,如果对此有某种API调用就更好了。你知道吗
  • 无法自定义如何计算版本号;例如,我想做git describe dirty。你知道吗

相关问题 更多 >