DocoptLanguageError: «использование:» (без учета регистра) не найдено - PullRequest
0 голосов
/ 24 сентября 2019

Я пытаюсь скопировать записную книжку, расположенную здесь .Тем не менее я получаю сообщение об ошибке чтения:

DocoptLanguageError: «использование:» (без учета регистра) не найдено.

Документация Docopt: http://docopt.org/

У вас есть предложение, как я могу решить эту проблему?

Я пытался установить последнюю версию: docopt-0.6.2.tar.gz.

if __name__ == "__main__":
    opt = docopt(__doc__)
    print(opt)
    if opt["download"] and opt["index"]:
        download_and_extract_index(opt)
    elif opt["download"] and opt["10k"]:
        download_10k(opt)
    elif opt["extract"] and opt["mda"]:
        extract_mda(opt)

1 Ответ

0 голосов
/ 25 сентября 2019

Эта ошибка может возникать из-за того, что в строке документа программ отсутствует ключевое слово «using».

На веб-странице docopt.org указано:

Текст, встречающийся между использованием ключевого слова: (без учета регистра) и видимой пустой строкой, интерпретируется как список шаблонов использования.Первое слово после использования: интерпретируется как имя программы.

Вам нужен хотя бы один шаблон использования.Если вы добавите один из них, ошибка исчезнет.

"""
usage:
  myprog.py download
"""

from docopt import docopt

if __name__ == "__main__":
    opt = docopt(__doc__)
    print(opt)
    if opt["download"] and opt["index"]:
        download_and_extract_index(opt)
    elif opt["download"] and opt["10k"]:
        download_10k(opt)
    elif opt["extract"] and opt["mda"]:
        extract_mda(opt)

Трудно начать работать с docopt, потому что вам придется подумать об обратном, по сравнению, например, с argparse.С docopt именно строка документа решает, как должны быть проанализированы аргументы, а не столько код.

...