gstreamer помощно съобщение заменя моето argparse съобщение

Опитвам се да използвам 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?

Благодаря предварително


person Alberto A    schedule 21.08.2012    source източник
comment
Отпечатва ли --help-all и вашите опции?   -  person av501    schedule 23.08.2012
comment
Имам същия проблем. Успяхте ли да разрешите това?   -  person amit    schedule 07.09.2012
comment
Все още не е Федър, за съжаление. Все още не съм пробвал --help-all! веднага щом отново имам достъп до кода, ще го пробвам.   -  person Alberto A    schedule 07.09.2012


Отговори (1)


Аз също имах същия проблем. Използвам пакет ubuntu 10.10 + python 2.6 + python-gst0.10.

Най-накрая проследих грешката до това: import gst преди parser.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
person amit    schedule 14.09.2012