首页 > 解决方案 > 在python中解析命令行参数

问题描述

必须进行命令行解析,我收到此错误。我对 Python 很陌生,我不知道错误是什么意思。

ap = argparse.ArgumentParser()
ap.add_argument("-i", "--image", required=True,
    help="path to input image")
ap.add_argument("-m", "--mask-rcnn", required=True,
    help="base path to mask-rcnn directory")
ap.add_argument("-v", "--visualize", type=int, default=0,
    help="whether or not we are going to visualize each instance")
ap.add_argument("-c", "--confidence", type=float, default=0.5,
    help="minimum probability to filter weak detections")
ap.add_argument("-t", "--threshold", type=float, default=0.3,
    help="minimum threshold for pixel-wise mask segmentation")
args = vars(ap.parse_args())

我收到此错误:

用法:main .py [-h] -i IMAGE -m MASK_RCNN [-v VISUALIZE] [-c CONFIDENCE] [-t THRESHOLD] main .py:错误:需要以下参数:-i/--image,- m/--mask-rcnn

发生异常,用于%tb查看完整回溯。

系统退出:2

C:\ProgramData\Anaconda3\lib\site-packages\IPython\core\interactiveshell.py:2889:用户警告:要退出:使用“退出”、“退出”或 Ctrl-D。warn("要退出:使用 'exit'、'quit' 或 Ctrl-D。", stacklevel=1)

​</p>

标签: pythonjupyter-notebookjupyterargparse

解决方案


argparse处理列表中的字符串sys.argv。通常这来自调用包含argparse代码的脚本时提供的命令行值:

$ python main.py -i foo -m bar

但看起来你正在使用ipython. 看看你如何调用这个脚本会很好。但是您可能需要使用:

$ ipython -i main.py -- -i foo -m bar

'--' 将ipython使用的输入与它应该提供给 的输入分开main.py


推荐阅读