2013-03-14 10 views
26

Argparse के भीतर प्रोग्राम नाम और संस्करण जानकारी निर्दिष्ट करने का पसंदीदा तरीका क्या है?प्रोग्राम और संस्करण स्ट्रिंग स्वरूपण के साथ प्रोग्राम के संस्करण को दिखाने के लिए पायथन का Argparse

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

उत्तर

43

हाँ, वह स्वीकार किए जाते हैं तरीका है। http://docs.python.org/dev/library/argparse.html#action से:

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

आप निश्चित रूप से एक मानक तरीके से अपने पैकेज में संस्करण संख्या को एम्बेड किया जाना चाहिए:

from _version import __version__ 
parser.add_argument('--version', action='version', 
        version='%(prog)s {version}'.format(version=__version__)) 
: Standard way to embed version into python package?

आपको लगता है कि विधि का पालन कर रहे हैं, तो आप एक __version__ चर है

:

उदाहरण के लिए, उस विधि https://pypi.python.org/pypi/commando/0.3.2a पर प्रदर्शन किया है

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

यह मानक तरीके से कैसा दिखता है? मैं देखता हूं कि आप argparse कोड लाइन में "2.0" verbatim का अपना संस्करण उदाहरण डालते हैं ... – type

+0

@ टाइप जो मेरा उदाहरण नहीं है; वह दस्तावेज़ों से है। – ecatmur

+0

मुझे समझ में नहीं आता कि यह क्यों कम हो गया है। इस तरह दस्तावेज़ इसे करने के लिए कहते हैं। – gecko

संबंधित मुद्दे