首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >docopt in python给了我一些问题

docopt in python给了我一些问题
EN

Stack Overflow用户
提问于 2015-04-23 00:28:26
回答 1查看 3.1K关注 0票数 3

我有一套三种程序,我正试图将它们合并成一个程序。他们都是单独工作的,但当我试图让他们一起工作时,我遇到了一些问题。我目前遇到的问题是代码的第一部分:

代码语言:javascript
复制
import os
import sys
from contextlib import closing

import colorama  # $ pip install colorama
import docopt  # $ pip install docopt
import socks  # $ pip install PySocks
import stem.process  # $ pip install stem
from sockshandler import SocksiPyHandler  # see pysocks repository
from stem.util import term

try:
    import urllib2
except ImportError: # Python 3
    import urllib.request as urllib2

args = docopt.docopt(__doc__, version='0.2')
colorama.init(strip=not (sys.stdout.isatty() or args['--color']))

当我运行程序时,我会得到以下错误:

代码语言:javascript
复制
Traceback (most recent call last):
  File "cilantro.py", line 34, in <module>
    args = docopt.docopt(__doc__, version='0.2')
  File "C:\Python34\lib\site-packages\docopt.py", line 558, in docopt
    DocoptExit.usage = printable_usage(doc)
  File "C:\Python34\lib\site-packages\docopt.py", line 468, in printable_usage
    raise DocoptLanguageError('"usage:" (case-insensitive) not found.')
docopt.DocoptLanguageError: "usage:" (case-insensitive) not found.

为什么我会收到这条错误信息?在原始程序中,相同的代码工作得很好。

EN

回答 1

Stack Overflow用户

发布于 2015-08-06 02:34:31

在使用docopt时,您需要为脚本编写一个__doc__字符串。docopt解析此字符串以确定如何处理命令行选项和参数。

要修复这个问题,以及类似于“导入os”上面的文本(所以这是文件中的第一件事):

代码语言:javascript
复制
"""
Name.
Describe what this script does

Usage:
 name <firstarg>
 name --countdown
 name sillycommand <SILLYNESS>
 name -h | --help

Options:
  --countdown  display a count down
"""

有关在这个使用字符串中放入什么的更多详细信息,可以在docopt文档http://docopt.org/中找到。

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

https://stackoverflow.com/questions/29811422

复制
相关文章

相似问题

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