我有一组三个程序,我试图合并为一个。它们都是单独工作的,但是在尝试让它们一起工作时我遇到了问题。我目前遇到的问题是第一部分代码:
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']))
当我运行程序时,我收到此错误:
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.
为什么我收到此错误消息?相同的代码在原始程序中正常工作。
答案 0 :(得分:3)
使用docopt时,您需要为脚本编写 __ doc __ 字符串。 docopt解析此字符串以确定如何处理命令行选项和参数。
要修复此问题,以及类似“import os”上方的以下文字(因此这是文件中的第一件事):
SELECT brgy_locat, municipali, bldg_name, bldg_type,
gridcode, building_count
FROM (SELECT brgy_locat, municipali, bldg_name, gridcode, bldg_type,
count( bldg_name) as building_count
FROM hi
GROUP BY 1, 2, 3, 4, 5) cnt_hi
FULL JOIN (SELECT brgy_locat, municipali,bldg_name, gridcode, bldg_type
FROM med
GROUP BY 1, 2, 3, 4, 5) cnt_med
USING (brgy_locat, municipali, bldg_name,gridcode,bldg_type)
FULL JOIN (SELECT brgy_locat, municipali,bldg_name,gridcode, bldg_type
FROM low
GROUP BY 1, 2, 3, 4, 5) cnt_low
USING (brgy_locat, municipali, bldg_name, gridcode, bldg_type);
有关此用法字符串内容的更多详细信息,请参阅docopt文档,http://docopt.org/