gpt4 book ai didi

python - 为什么 docopt 失败并显示 docopt.DocoptLanguageError : unmatched '[' ?

转载 作者:行者123 更新时间:2023-11-28 21:08:21 25 4
gpt4 key购买 nike

为什么此代码会失败并出现以下异常?

"""my_program - for doing awesome stuff

Usage: my_program [--foo]

Options:
--foo - this will do foo
"""

import docopt
args = docopt.docopt(doc=__doc__)

异常(exception):

Traceback (most recent call last):
File "/tmp/post.py", line 10, in <module>
args = docopt.docopt(doc=__doc__)
File "/Users/rbednark/.virtualenvs/docopt-python2/lib/python3.5/site-packages/docopt.py", line 560, in docopt
pattern = parse_pattern(formal_usage(DocoptExit.usage), options)
File "/Users/rbednark/.virtualenvs/docopt-python2/lib/python3.5/site-packages/docopt.py", line 373, in parse_pattern
result = parse_expr(tokens, options)
File "/Users/rbednark/.virtualenvs/docopt-python2/lib/python3.5/site-packages/docopt.py", line 381, in parse_expr
seq = parse_seq(tokens, options)
File "/Users/rbednark/.virtualenvs/docopt-python2/lib/python3.5/site-packages/docopt.py", line 396, in parse_seq
atom = parse_atom(tokens, options)
File "/Users/rbednark/.virtualenvs/docopt-python2/lib/python3.5/site-packages/docopt.py", line 413, in parse_atom
result = pattern(*parse_expr(tokens, options))
File "/Users/rbednark/.virtualenvs/docopt-python2/lib/python3.5/site-packages/docopt.py", line 381, in parse_expr
seq = parse_seq(tokens, options)
File "/Users/rbednark/.virtualenvs/docopt-python2/lib/python3.5/site-packages/docopt.py", line 396, in parse_seq
atom = parse_atom(tokens, options)
File "/Users/rbednark/.virtualenvs/docopt-python2/lib/python3.5/site-packages/docopt.py", line 415, in parse_atom
raise tokens.error("unmatched '%s'" % token)
docopt.DocoptLanguageError: unmatched '['

文档版本:0.6.2
python 版本:2.7.10, 3.5.1

最佳答案

由于 --foo 之后只有一个空格,所以失败了:

    --foo - this will do foo

通过在 --foo 之后添加另一个空格来修复它:

    --foo  - this will do foo



the documentation:

Use two spaces to separate options with their informal description:

--verbose More text.   # BAD, will be treated as if verbose option had
# an argument "More", so use 2 spaces instead
-q Quit. # GOOD
-o FILE Output file. # GOOD
--stdout Use stdout. # GOOD, 2 spaces



附加引用:docopt source code

关于python - 为什么 docopt 失败并显示 docopt.DocoptLanguageError : unmatched '[' ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40078516/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com