私はコマンドラインインターフェイスでタイプされたパラメータを解析するためにPythonでargparseモジュールを使用しています。Python argparse:metavarとaction = store_trueを一緒に
submit_parser.add_argument('-pv','--provision',metavar='PROVISION', dest='PROVISION',
help='provision system',
action='store_true', default=False, required=False)
私はこのエラーを取得する:
Traceback (most recent call last):
File "./scripts/tp4", line 94, in <module>
main()
File "./scripts/tp4", line 74, in main
modloader.loadModules(sub_parsers)
File "/usr/lib/python2.6/site-packages/tp4/cli/Moduleloader.py", line 66, in loadModules
registered_modules[module_name].setSubparserArgs(module_sub_parser)
File "/usr/lib/python2.6/site-packages/tp4/cli/modules/AutotestModule.py", line 135, in setSubparserArgs
action='store_true', default=False, required=False)
File "/usr/share/tp4/cli/zip/argparse.zip/argparse.py", line 1302, in add_argument
TypeError: __init__() got an unexpected keyword argument 'metavar'
私はアクションやmetavarパラメータを削除した場合、それが動作私はsubparserオブジェクトに次のadd_argumentのコールを持っています。なぜ両方が一緒にできないのですか? argparseのマニュアルでは、この制限については何もありませんhttp://docs.python.org/dev/library/argparse.html。任意の助けを事前に
おかげ
pythonのバージョン....チェックするべき重要なことです.... – avasal
あなたは尋ねたことはありませんが、 'action'が' 'store_true''ならば、デフォルト値は既に' False'です。 '' store_false'''がデフォルト値は '' True''です)。 'optparse'とは異なりますが(どちらの場合でもデフォルトは' None'です)、かなり便利です。 – torek