2016-02-26 53 views
1

我剛開始使用python click模塊,我希望自動調出'--help'函數,隨時點擊引發錯誤。python點擊返回幫助菜單

test.py

@click.command() 
@click.option('--count', default=1, help='Number of greetings.') 
@click.option('--name', default=Adam, 
       help='The person to great.') 
def test(name): 
    print name 

如果我是運行在命令行test.py --no_such_thing腳本。有沒有一種方法我能得到--help上來,而不是正常的 :錯誤沒有選項如果你使用點擊4.0+ --no_such_thing

回答

0

,您可以禁用自動錯誤處理使用Context.ignore_unknown_options未知選項和Context.allow_extra_args

import click 

@click.command(context_settings={ 
    'allow_extra_args': True, 
    'ignore_unknown_options': True, 
}) 
@click.pass_context 
def hello(ctx): 
    if ctx.args: 
     print(hello.get_help(ctx)) 

if __name__ == "__main__": 
    hello() 

在這種情況下,您的命令將獲得其餘的參數在ctx.args列表。缺點是你需要自己處理錯誤,否則程序會自動失敗。

更多信息可在Forwarding Unknown Options部分的文檔中找到。

1

總之,您需要修改方法click.exceptions.UsageError.show。 但是,我已在answer to this SO post中發佈了對此問題的更深入的解答以及示例代碼。