Python 定义参数时出错

Python 定义参数时出错,python,argparse,Python,Argparse,下面是使用python2.7的代码main.py import argparse import cv2 ap = argparse.ArgumentParser() ap.add_argument("-1","--image", required = True, help = "Path to the image") Out[4]: _StoreAction(option_strings=['-1', '--image'], dest='image', nargs=None, const=

下面是使用python2.7的代码
main.py

import argparse
import cv2

ap = argparse.ArgumentParser()

ap.add_argument("-1","--image", required = True, help = "Path to the image")
Out[4]: _StoreAction(option_strings=['-1', '--image'], dest='image', 
nargs=None, const=None, default=None, type=None, choices=None, help='Path to 
the image', metavar=None)

args = vars(ap.parse_args())
用法:main.py[-h]-1图像 main.py:错误:参数-1/--需要图像 要退出:请使用“退出”、“退出”或Ctrl-D。 发生异常,请使用%tb查看完整回溯

SystemExit:2


尽管遵循了这些步骤,我还是在代码行4中不断遇到错误。有什么事我做得不对吗?有人能给我指出正确的方向吗?

在交互式shell中使用argparse将无法正常工作。argparse的本质是从sys.argv中提取参数,并根据您设置的规则进行解析。正如raylu所说,我建议设置一个python文件来运行。例如,在名为test_argparse.py的文件中:

import argparse
import cv2

if __name__ == "__main__":
    ap = argparse.ArgumentParser()
    ap.add_argument("-1","--image", required = True, help = "Path to the image")
    args = vars(ap.parse_args())
    print args['image']

然后可以通过在命令行执行
python test_argparse.py
来测试这一点。现在可以使用
-1
--image
-h
--help
标志调用此命令
-h
-help
将为您提供用法。

看起来您正在python shell/REPL中运行此代码,在这种情况下,argparse正在解析启动shell的参数。您应该将此代码放在一个文件中,并使用要分析的参数运行该文件。您是如何运行此代码的?从贝壳里?“输出”和错误捕获看起来像是一个
ipython
会话。是的,从一个shell。谢谢@raylu纠正我的误解。它现在正在运行一个文件中的代码,该文件包含用于清除涡度的参数。代码正在运行