2013-03-14 8 views
26

Qual è il modo migliore di specificare il nome del programma e le informazioni sulla versione all'interno di argparse?Argparse di Python per mostrare la versione del programma con la formattazione della stringa prog e versione

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

risposta

43

Sì, questo è il modo accettato. Da http://docs.python.org/dev/library/argparse.html#action:

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

Si dovrebbe ovviamente essere incorporare il numero di versione nel pacchetto in un modo standard: Standard way to embed version into python package?

Se stai seguendo quel metodo, si dispone di una variabile __version__:

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

ad esempio, questo è il metodo illustrato in https://pypi.python.org/pypi/commando/0.3.2a:

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

come sarebbe, in un modo standard? Vedo che metti la tua versione di "2.0" testualmente nella riga di codice argparse ... – type

+0

@type che non è il mio esempio; quello è dai documenti. – ecatmur

+0

Non capisco perché questo è downvoted. È come i dottori dicono di farlo. – gecko