2016-03-02 43 views
-1

我怎样才能得到Pantsgit describe某处输出存储在我的.pex文件,这样就可以从Python代码我写访问它建?--version支持与西裤

基本上我希望能够克隆my project和做到这一点:

  1. ./pants binary px
  2. 发布最终dist/px.pex给别人
  3. 应该有人能够做到px.pex --version和获得的打印输出什么git describe表示我在第一步建立了.pex

帮助!

+0

为什么downvote?澄清将是受欢迎的:) –

回答

0

原来pex已经做git describe构建。将结果存储在.pex文件的根目录中的PEX-INFO文件中。所以阅读它,我做到了这一点:

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