我需要一些关于docopt与python3.7 .I在pyCharm中使用的基本帮助。我试着让运行示例代码,它显示在docopt.org网站上。但是系统正在抛出使用错误。我通过pip安装docopt和拥有0.6.2版本安装了doctop。我找到了一个包含相同错误消息的线程,但是用户在其中没有docstring,这就是为什么它对他无效的原因。
以下是代码:
#!/usr/bin/python
# -*- coding: utf-8 -*-
"""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}
naval_fate.py -h| --help
naval_fate.py --version
Options:
-h --help Show this screen.
--version Show version.
--speed=<kn> Speed in knots [default: 10].
-- moored Moored (anchored) mine.
-- drifting Drifting mine.
"""
from docopt import docopt
if __name__ == '__main__':
arguments = docopt(__doc__, version='1')
print(arguments)这是一个错误:
...\Scripts\python.exe
.../naval_fate.py
Traceback (most recent call last):
File
".../naval_fate.py", line 27, in <module>
arguments = docopt(__doc__, version='1')
File "...\lib\site-packages\docopt.py", line 558, in docopt
DocoptExit.usage = printable_usage(doc)
File "...\lib\site-packages\docopt.py", line 466, in printable_usage
usage_split = re.split(r'([Uu][Ss][Aa][Gg][Ee]:)', doc)
File "C:\Python\Python37\Lib\re.py", line 213, in split
return _compile(pattern, flags).split(string, maxsplit)
TypeError: expected string or bytes-like object
Process finished with exit code 1我试过的是:
e.g
from docopt
...
arguments = docopt.docopt(__doc__, version='1')而不是
from docopt import docopt
...
arguments = docopt(__doc__, version='1')但这一切都没有帮助。有谁有主意吗?到目前为止谢谢。
发布于 2018-11-13 09:18:51
我找到了!这是“用法”部分中行尾的花括号。
naval_fate.py mine (set|remove) <x> <y> [--moored|--drifting}把它改了以后,一切都很好。
希望我能帮助别人克服这个小小的错误。
https://stackoverflow.com/questions/53239671
复制相似问题