首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python3 docopt在使用pyCharm时抛出使用错误

python3 docopt在使用pyCharm时抛出使用错误
EN

Stack Overflow用户
提问于 2018-11-10 13:56:18
回答 1查看 961关注 0票数 3

我需要一些关于docopt与python3.7 .I在pyCharm中使用的基本帮助。我试着让运行示例代码,它显示在docopt.org网站上。但是系统正在抛出使用错误。我通过pip安装docopt和拥有0.6.2版本安装了doctop。我找到了一个包含相同错误消息的线程,但是用户在其中没有docstring,这就是为什么它对他无效的原因。

以下是代码:

代码语言:javascript
复制
#!/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)

这是一个错误:

代码语言:javascript
复制
...\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

我试过的是:

  • 删除了naval_fate.py的文件扩展名。
  • 卸载和重新安装docopt。
  • 更改“用法”和“选项”部分中和之后单词的位置。
  • 在选项和文本之间使用两个空格(如在另一个线程中找到)
  • 尝试以不同的方式在docstring之外格式化。

e.g

代码语言:javascript
复制
from docopt
...
arguments = docopt.docopt(__doc__, version='1')

而不是

代码语言:javascript
复制
from docopt import docopt
...
arguments = docopt(__doc__, version='1')

但这一切都没有帮助。有谁有主意吗?到目前为止谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-13 09:18:51

我找到了!这是“用法”部分中行尾的花括号。

代码语言:javascript
复制
naval_fate.py  mine (set|remove) <x> <y> [--moored|--drifting}

把它改了以后,一切都很好。

希望我能帮助别人克服这个小小的错误。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53239671

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档