Подтвердить что ты не робот

Python argparse для отображения версии программы с форматированием строки прога и версии

Какой предпочтительный способ указать имя и версию программы внутри argparse?

__version_info__ = ('2013','03','14')
__version__ = '-'.join(__version_info__)
...
parser.add_argument('-V', '--version', action='version', version="%(prog)s ("+__version__+")")
4b9b3361

Ответ 1

Да, это принятый путь. Из http://docs.python.org/dev/library/argparse.html#action:

>>> parser.add_argument('--version', action='version', version='%(prog)s 2.0')

Конечно, вы должны встраивать номер версии в свой пакет стандартным образом: Стандартный способ встраивания версии в пакет python?

Если вы следуете этому методу, у вас есть переменная __version__:

from _version import __version__
parser.add_argument('--version', action='version',
                    version='%(prog)s {version}'.format(version=__version__))

Например, метод, продемонстрированный в https://pypi.python.org/pypi/commando/0.3.2a:

parser.add_argument('-v', '--version', action='version', version='%(prog)s ' + __version__)