2014-02-06 2 views
0

I가 docopt에서 다음 사용 : [<devices_file>]는 선택적 인수입니다docopt 선택적 인수를 허용하지

cli.py add_user <user_file> [<devices_file>] <destination_account> <token> 
cli.py remove_user (--id|--username) <user_id> <source_account> <token> 

.

그러나 사용하려고하면 오류가 발생합니다.

이 괜찮 작동합니다

add_user user_29087.json dev_29087.json 531 token 

이 오류가 발생합니다 :

add_user user_29087.json 531 token 

오류 :

Traceback (most recent call last): 
    File "C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\Extensio 
ns\Microsoft\Python Tools for Visual Studio\2.0\visualstudio_py_util.py", line 7 
6, in exec_file 
    exec(code_obj, global_variables) 
    File "C:\Users\mryan\Documents\Code\cli\cli_front.py", line 
49, in <module> 
    arguments = docopt(__doc__, version='1.0.0rc2') 
    File "C:\Users\mryan\Documents\Code\cli\common\docopt.py", l 
ine 581, in docopt 
    raise DocoptExit() 
DocoptExit: Usage: 
    cli.py get_token 
    cli.py add_user <user_file> [<devices_file>] <destination_account> <token> 
    cli.py remove_user (--id|--username) <user_id> <source_account> <token> 
    cli.py get_users <account_id> <token> 

아무도 내가 뭘 잘못 볼 수 있을까요?

답변

1

add_user에서 사용했기 때문에 선택적 devices_file이 있거나없는 경우 CLI가 어떻게 구별되는지 알 수 없습니다.

두 번째 예에서는 531이 선택 항목이라고 가정하고 그 "531"항목을 장치 파일로 해석 할 방법이 없기 때문에 그냥 실종되었습니다. devices_file는 선택 사항이기 때문에

,이처럼 작성합니다 : 문서에서, 옵션은 거의 항상 마지막에 할 것을

Usage: 
    add_user <user_file> <destination_account> <token> [<devices_file>] 

또는

Usage: 
    add_user <user_file> [-d DEVFI | --devices-file=DEVFI] <destination_account> <token> 

Options: 
    -d DEVFI --devices-file=DEVFI Optional devices file for blah. 

참고.

"""Naval Fate. 

Usage: 
    naval_fate.py ship new <name>... 
    naval_fate.py ship <name> move <x> <y> [--speed=<kn>] 
    naval_fate.py ship shoot <x> <y> 
    naval_fate.py mine (set|remove) <x> <y> [--moored | --drifting] 
+0

답장을 보내 주셔서 감사합니다. 문제는 내 모듈 (및 사용법)이 즉시로드됩니다. 프로그램 시작시 "사용"문자열을 작성합니다. 즉, "옵션"섹션을 가질 수 없습니다. 첫 번째 예를 들어 보겠습니다. 감사! – TomSelleck