Эта ошибка может возникать из-за того, что в строке документа программ отсутствует ключевое слово «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 именно строка документа решает, как должны быть проанализированы аргументы, а не столько код.