3

アプリケーションへのコマンド ライン引数を処理するために 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 ヘルプ メッセージを抑制する方法はありますか?

前もって感謝します

4

1 に答える 1

2

私も同じ問題を抱えていました。ubuntu 10.10 + python 2.6 + python-gst0.10 パッケージを使用しています。

最後に、バグを次のように追跡しました: import gstbefore parser.parse_args()modified 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
于 2012-09-14T03:11:59.460 に答える