2013-03-14 52 views
26

Cách ưa thích để chỉ định tên chương trình và thông tin phiên bản trong argparse là gì?argparse của Python để hiển thị phiên bản chương trình với định dạng chuỗi prog và phiên bản

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

Trả lời

43

Vâng, đó là cách chấp nhận. Từ http://docs.python.org/dev/library/argparse.html#action:

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

Bạn nên dĩ nhiên được nhúng số phiên bản trong gói của bạn trong một cách tiêu chuẩn: Standard way to embed version into python package?

Nếu bạn đang theo dõi phương pháp đó, bạn có một biến __version__:

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

Ví dụ: đó là phương pháp được minh họa tại https://pypi.python.org/pypi/commando/0.3.2a:

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

cách này trông như thế nào, theo cách tiêu chuẩn? tôi thấy bạn đặt ví dụ phiên bản của bạn về nguyên văn "2.0" trong dòng mã argparse ... – type

+0

@ type không phải là ví dụ của tôi; đó là từ các tài liệu. – ecatmur

+0

Tôi không hiểu tại sao điều này lại bị bỏ phiếu. Đó là cách các tài liệu nói để làm điều đó. – gecko