-2

我从 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

请帮我。谢谢

4

2 回答 2

0

您的问题标题中的错误消息非常明显。

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

你把required=True这个参数。这意味着它是必需的。因此,如果您尝试运行此脚本,并且不在命令行上放置--source(或-s)参数,您将收到错误消息。

如果您不希望它是必需的,请不要放置required=True.


另一方面,您在问题末尾显示的输出不可能来自此代码。您的规范中没有-srcor-trg参数。argparse也许您正在运行一个完全不同的程序?如果是这样,我们无法通过查看该程序的代码来调试该程序。

于 2018-06-19T05:02:20.280 回答
-1

我认为您没有将参数 -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)
于 2018-06-19T04:56:42.680 回答