【问题标题】:gstreamer help message overriding my argparse messagegstreamer 帮助消息覆盖我的 argparse 消息
【发布时间】:2012-08-17 02:10:18
【问题描述】:

我正在尝试使用 argparse 来处理我的应用程序的命令行参数,但我在使用 gstreamer(我的应用程序使用)时遇到了一些问题。当我为我的应用程序提供 -h 选项时,它没有显示我为程序参数定义的帮助消息,而是显示一个奇怪的 gstreamer 帮助消息,省略了我的参数的帮助。

我的代码中有以下解析器定义:

parser = argparse.ArgumentParser()
parser.add_argument("-c", "--capture", help="Specifies the capture device.\n 0 - Webcam \n 1 - Kinect", type=int, choices=[0, 1], default=0)
parser.add_argument("-i", "--interval", help="Specifies the capture interval in seconds when the auto-capture is on", type=int, choices=[4, 5, 6, 7, 8], default=4)
args = parser.parse_args()

当我使用 -h 启动程序时收到的消息是(我的语言环境是巴西葡萄牙语,但足以看到帮助消息的一般结构以及我的可选参数缺乏帮助)

Uso:
  FasTracker.py [OPÇÃO...] - GStreamer initialization

Opções de ajuda:
  -h, --help                        Exibe opções de ajuda
  --help-all                        Exibe todas as opções de ajuda
  --help-gst                        Exibir opções do GStreamer

我是不是做错了什么,还是有办法抑制 Gstreamer 帮助消息?

提前致谢

【问题讨论】:

  • --help-all 是否也打印您的选项?
  • 我也有同样的问题。你能解决这个问题吗?
  • 不幸的是,还没有 phaedrus。还没有尝试过--help-all!等我可以再次访问代码,我会试试看。

标签: python helper gstreamer argparse


【解决方案1】:

我也遇到了同样的问题。我正在使用 ubuntu 10.10 + python 2.6 + python-gst0.10 包。

最后我找到了这个错误:import gstparser.parse_args() 修改sys 之前。要重现,请将以下代码放入main.py

if __name__=='__main__':
    import argparse, sys
    pparser = argparse.ArgumentParser(description='my program')
    pparser.add_argument('--plot', action='store_true', default=False, help="Show a plot")
    pparser.add_argument('--log', action='store_true', default=False, help="Write log output")
    pparser.add_argument('filename', action='store', type=str)
    import gst
    args = pparser.parse_args(sys.argv[1:])

然后运行python main.py -h。这会产生以下错误输出:

Usage:
  main.py [OPTION...] - GStreamer initialization

Help Options:
  -h, --help                        Show help options
  --help-all                        Show all help options
  --help-gst                        Show GStreamer Options

如果我们去掉import gst(或者将语句移到parse_args之后),那么输出是正确的:

usage: main.py [-h] [--plot] [--log] filename

my program

positional arguments:
  filename

optional arguments:
  -h, --help  show this help message and exit
  --plot      Show a plot
  --log       Write log output

【讨论】:

    猜你喜欢
    • 2016-06-21
    • 2021-09-16
    • 2014-10-07
    • 2015-07-26
    • 2015-08-11
    • 1970-01-01
    • 1970-01-01
    • 2019-03-20
    • 2013-04-28
    相关资源
    最近更新 更多