Ошибка: аргумент -s/- требуется источник

Я скопировал этот код из Github, но он не работает для меня.

Образец кода:

ap = argparse.ArgumentParser()
ap.add_argument("-s", "--source", required=True, help="Path to the source of shapes")
ap.add_argument("-t", "--target", required=True, help="Path to the target image")
args = vars(ap.parse_args())

и этот вывод

usage: detect_leaf.py [-h] -s SOURCE -t TARGET
detect_leaf.py: error: argument -s/--source is required

Помогите мне, пожалуйста. Спасибо

2 ответа

Решение

Сообщение об ошибке в заголовке вашего вопроса довольно очевидно.

ap.add_argument("-s", "--source", required=True, help="Path to the source of shapes")

Вы положили required=True по этому параметру. Это означает, что это требуется. Итак, если вы попытаетесь запустить этот скрипт, и не ставить --source (или же -s) аргумент в командной строке, вы получите ошибку.

Если вы не хотите, чтобы это требовалось, не ставьте required=True,


Вывод, который вы показываете в конце вопроса, с другой стороны, не может быть получен из этого кода. Здесь нет -src или же -trg параметр в вашем argparse спекуляция Может быть, вы запускаете совершенно другую программу? Если это так, мы не можем отладить эту программу, увидев код этой.

Я думаю, что вы не указали аргумент -s в команде python excute. Предполагая, что код Python сохранен в файле с именем detect_leaf.py Вы должны поместить аргумент -s, как показано ниже

python detect_leaf.py -s SOURCE -t TARGET

и Есть два способа получить доступ к значению аргументов, как показано ниже

import argparse
ap = argparse.ArgumentParser(description='Process some integers.')
ap.add_argument("-s", "--source", required=True,  help="Path to the source of shapes")
ap.add_argument("-t", "--target", required=True,  help="Path to the target image")

#It's Dictionary
vars_args = vars(ap.parse_args())

print(vars_args['source'])
print(vars_args['target'])

#It's NameSpace object
parsed_args = ap.parse_args()

print(parsed_args.source)
print(parsed_args.target)
Другие вопросы по тегам