我创建与应用Click
在Python 3.6。 我似乎有一个,我找不到一个错误。 我在下面贴出我的代码。
问题是,当我输入:
python clickapp.py --help
一切都很好。 但是,当我键入
python clickapp.py simplerequest --help
我得到的指示,我很想念的说法“目录”的错误,但没有回溯指示错误的来源。 最终结果将是:
Usage: clickapp.py [OPTIONS] STARTDATE ENDDATE DIRECTORY COMMAND [ARGS]...
Error: Missing argument "directory".
下面是我使用的代码。 这是文件名的小例子clickapp.py
。
import click
@click.group()
@click.argument('startdate')
@click.argument('enddate')
@click.argument('directory', type=click.Path())
@click.pass_context
def cli(ctx,
startdate,
enddate,
directory):
ctx.obj['directory'] = directory
ctx.obj['startdate'] = startdate
ctx.obj['enddate'] = enddate
@click.command()
@click.argument('arg1', type=str)
@click.argument('arg2', type=click.Path(exists=True))
@click.argument('arg3', type=int)
@click.pass_context
def SimpleRequest(ctx,
arg1,
arg2,
arg3):
"""Simple request processor"""
ctx.obj['arg1'] = arg1
ctx.obj['arg2'] = arg2
ctx.obj['arg3'] = arg3
cli.add_command(SimpleRequest)
if __name__ == '__main__':
cli(obj={})
任何人都可以看到错误的根源?
我试了几件事情:
我删除了
type=click.Path(exists=True)
在arg2
来看看是否有可能会造成问题。 但是这并没有改变任何东西。我还试图删除围绕插入变量到一些验证逻辑
ctx
字典,但这并没有帮助。