我有一個Python腳本,它運行兩個接受相同選項--config
的子命令。我想創建第三個子命令,它們可以按順序一起運行前兩個子命令。對子命令中的選項argparse的衝突解析器將關鍵字參數變爲位置參數
使用argparse,我爲每個子命令以及第三個子分析器創建了一個子分析器,其父母是兩個子命令。只是爲了澄清:
subcommand1 = subparsers.add_parser('subcommand1')
subcommand1.add_argument('--config', help="The config")
subcommand2 = subparsers.add_parser('subcommand2')
subcommand2.add_argument('--config', help="The config")
wrappercommand = subparsers.add_parser('wrappercommand',
parents=[subcommand1, subcommand2],
conflict_handler='resolve')
當我運行wrappercommand或subcommand2時,一切正常。然而,subcommand1休息,以此爲輸出:
$ run_command.py subcommand1 --config path_to_config.ini
usage: run_command.py subcommand1 config
optional arguments:
help show this help message and exit
config The config
它看起來像argparse已經變成一個關鍵字ARG(「--config」)到的位置一(「配置」)。這是在argparse解決衝突選項時的預期行爲嗎?
你能發佈完整的解析代碼嗎?該論據是否應該是「幫手」? – Forge 2014-09-13 02:11:35
這是一個錯字 - 它應該是'help ='配置''。 – hpaulj 2014-09-13 18:10:26