0

使用参数的 Python CLI 应用程序显示版本--version。存储该信息的正确方法是什么?Argparse 对此有一个论据

import argparse
parser = argparse.ArgumentParser(prog='PROG')
parser.add_argument('--version', action='version', version='%(prog)s 2.0')
parser.parse_args(['--version'])

但我不相信这是正确的方法。我正在考虑将版本存储在一个文件中,以便它可以由构建管道维护,但它应该受到保护,以便用户无法修改它。

4

2 回答 2

1

我也创建了一个version.py文件,但我的内容更简单:

version = 'develop'

线索是,这个单行文件在我的管道中被替换为来自 git 标签的实际版本。所以管道构建提供的每个版本都会有类似version = "v1.0.23"的东西。然后我可以简单地做一个from version import version我需要的地方。

gitlab ci 的示例:

  # set version
  - VERSION=$(git describe --tags)
  - echo "version = '$VERSION'" > version.py
于 2020-07-19T10:11:08.497 回答
0

我创建了一个 Version.py 文件并将其导入到主代码中。如果它的 dev + 将添加到版本中,如果它是 exe,则 + 将被忽略。

文件内容示例:

import sys
VERSION = 'V' + '0' + '.' + '3'
if getattr(sys, 'frozen', False): #adding + for dev and Build for exe
    VERSION = VERSION + ' '
else:
    VERSION = VERSION + ' +'
于 2020-07-19T10:01:43.050 回答