Я сам использую optparse, но мне действительно нравится направление, в котором движется Саймон Виллисон со своей недавно представленной библиотекой optfunc . Работает:
"анализ функции
определение (включая его аргументы
и их значения по умолчанию) и использование
что построить командную строку
анализатор аргументов. "
Так, например, это определение функции:
def geocode(s, api_key='', geocoder='google', list_geocoders=False):
превращается в этот вспомогательный текст справки:
Options:
-h, --help show this help message and exit
-l, --list-geocoders
-a API_KEY, --api-key=API_KEY
-g GEOCODER, --geocoder=GEOCODER