存储python CLI软件版本的好方法是什么?(<;应用程序>;--版本)
Python CLI应用程序使用存储python CLI软件版本的好方法是什么?(<;应用程序>;--版本),python,command-line-interface,design-guidelines,Python,Command Line Interface,Design Guidelines,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']) 但我不相信这是正确的方法。我正
--version
参数显示版本。
存储这些信息的正确方法是什么?Argparse对此有一个参数
import argparse
parser = argparse.ArgumentParser(prog='PROG')
parser.add_argument('--version', action='version', version='%(prog)s 2.0')
parser.parse_args(['--version'])
但我不相信这是正确的方法。我正在考虑将该版本存储在一个文件中,这样它就可以由构建管道维护,但它应该受到保护,这样用户就不能修改它。我已经创建了一个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 + ' +'
我还创建了一个
version.py
文件,但我的内容更简单:
version='developer'
线索是,在我的管道中,这一行文件被来自git标记的实际版本所取代。因此,管道构建提供的每个版本都将包含类似于version=“v1.0.23”
的内容。
然后,我可以在需要的任何地方从版本导入版本,只需执行
gitlab ci的示例:
# set version
- VERSION=$(git describe --tags)
- echo "version = '$VERSION'" > version.py
如果用户真的修改了它,为什么会有问题或者是你的问题呢?我觉得这是不对的。软件和操作系统不允许您修改版本文件。为什么我的软件会允许这样?谢谢!真聪明!非常感谢。我喜欢这个主意!但为什么要在非冻结应用程序的末尾添加“+”?为什么要进行任何连接,为什么不在VERSION='V0.3'
,为什么要添加一个尾随空格?这是您的愿望,如果是一个小更改,我将在小数点后增加数字。或少校,我将增加第一个数字。就这样