Arg 解析器错误:args = vars(ap.parse_args()) 发生异常:python

Posted

技术标签:

【中文标题】Arg 解析器错误:args = vars(ap.parse_args()) 发生异常:python【英文标题】:Arg parser error :args = vars(ap.parse_args()) exception occured : python 【发布时间】:2022-01-03 18:00:44 【问题描述】:
ap = argparse.ArgumentParser()
ap.add_argument("-i", "--image", required=True,
help="path to input image")
ap.add_argument("-d", "--dataset", required=True,
help="path to dataset")
ap.add_argument("-m", "--model", required=True,
help="path to Caffe pre-trained model")
ap.add_argument("-l", "--labels", required=True,
help="path to ImageNet labels (i.e., syn-sets)")
args = vars(ap.parse_args())

我得到的输出是

usage: train.py [-h] -i IMAGE -d DATASET -m MODEL -l LABELS
    ipykernel_launcher.py: error: the following arguments are required: -i/--image, -p/--prototxt, -m/--model, -l/--labels.
 An exception has occurred, use %tb to see the full traceback.
 System Exit: 2

【问题讨论】:

错误表明-p/--prototxt 是必需的参数,但它没有出现在您的代码中。您确定您正在运行脚本的更新版本吗? 根据错误信息,this question 似乎相关。 错误消息告诉我们您正在 jupyter notebook 中运行它。在那种环境中为脚本提供命令行参数并不容易,即使您知道这意味着什么。像这样的脚本应该从 OS shell 运行。 【参考方案1】:

您遇到此错误是因为您在运行脚本时未传递您定义的必需参数。 如果您像这样运行脚本,则不会出现错误:

script_name.py -i image_path -d data_path -m model_path -l label_path

【讨论】:

以上是关于Arg 解析器错误:args = vars(ap.parse_args()) 发生异常:python的主要内容,如果未能解决你的问题,请参考以下文章

基于 build ARG 有条件地在 Dockerfile 中设置 ENV vars

使用自定义类型的 TypeGraphql 字段和 Arg 装饰器

parse_args 来自解析器参数的所有 .png 文件

前面声明过va_list ap;后面出现了va_start (ap, fmt),va_arg (ap, int)。fmt 和 int 是啥参数啊?

有没有办法创建 Visual Assist 特定的预处理器部分?

如何修复“错误:需要以下参数:-i / - image”