如何让Pantsgit describe
将某处的输出存储在我的.pex
文件中,以便我可以从我正在编写的 Python 代码中访问它?
基本上我希望能够克隆我的项目并这样做:
./pants binary px
- 将结果
dist/px.pex
分发给某人 - 当我在第一步中构建时,有人应该能够做到
px.pex --version
并打印出我所说的任何内容。git describe
.pex
帮助!
事实证明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']
这对 IMO 来说已经足够好了,但也有缺点。如果有人有改进的答案,我准备切换到那个作为接受的答案。
这个中断:
PEX-INFO
,如果对此有某种 API 调用会更好。git describe --dirty
。