3

リュウアプリを開発しています。アプリは基本的に python スクリプトです。ryu アプリは、このように ryu-manager によって呼び出されます

ryu-manager {ファイル名}

ryu-manager が取得する特定のパラメーターがあります。ファイルに引数を渡す方法があるかどうか知りたいですか?

コマンドラインオプションを解析するためのpythonのargparseモジュールはありますが、提供するすべての引数が私のスクリプトではなくryu-managerによって使用されるため、機能するかどうかはわかりません。

どんな助けでも大歓迎です。

4

3 に答える 3

1

これは 4 ステップのプロセスです。パラメータを読み取って出力する例を示しますが、このプロセスを参照することで、パラメータを変数に割り当てたり、やりたいことを実行したりできます。


  1. .conf ファイルを作成します (例: params.conf)

    #Example Conf File
    
    [DEFAULT]
    
    param1_int = 42
    param2_str = "You read my data :)"
    param3_list = 1,2,3
    param4_float = 3.14
    
  2. 次のコードを __init__ メソッドに追加します。ryu に付属する simple_switch_13.py に対してこれを行いました。

    from ryu import cfg
    :
    :
    class SimpleSwitch13(app_manager.RyuApp):
        def __init__(self, *args, **kwargs):
            super(SimpleSwitch13, self).__init__(*args, **kwargs)
               :
            CONF = cfg.CONF
            CONF.register_opts([
                cfg.IntOpt('param1_int', default=0, help = ('The ultimate answer')),
                cfg.StrOpt('param2_str', default='default', help = ('A string')),
                cfg.ListOpt('param3_list', default = None, help = ('A list of numbers')),
                cfg.FloatOpt('param4_float', default = 0.0, help = ('Pi? Yummy.'))])
    
            print 'param1_int = {}'.format(CONF.param1_int))
            print 'param2_str = {}'.format(CONF.param2_str))
            print 'param3_list = {}'.format(CONF.param3_list))
            print 'param4_float = {}'.format(CONF.param4_float))
    
  3. スクリプトを実行

    ryu-manager paramtest.py --config-file [PATH/TO/FILE/params.conf]
    
  4. 利益


回答をまとめるときに以下を参照しました。詳細を提供できます (この問題に遭遇する前に聞いたことのない oslo.config など)。

oslo.config の詳細: http://www.giantflyingsaucer.com/blog/?p=4822

この問題に関するリュウのメール チェーン: https://sourceforge.net/p/ryu/mailman/message/33410077/

于 2017-09-25T22:22:48.707 に答える
0

ryu コントローラーに引数を渡す方法が見つかりません。これを回避するために使用した 1 つの方法は、引数を環境変数として渡すことです。たとえば、ryu-manager を呼び出すプログラムがあり、アプリにパラメーターを渡す必要があります。私は次のようにこれを行います: ARG=value ryu-manager app.py

于 2014-12-04T20:09:28.623 に答える