2

以下のものを検索して試しましたが、解決策が見つかりませんでした。これが可能かどうか教えてください。

Pythonモジュールをラッパーとして開発しようとしています.main()を使用して別のサードパーティモジュールを呼び出し、モジュールのコマンドラインから取得する必要がある必須パラメーターを提供します。モジュールにもいくつかのパラメーターが必要です。

モジュールと私のモジュールを呼び出すためのコマンドラインを解析するために argparse を使用しています。呼び出しパラメータ リストは巨大 (40 以上) で、オプションですが、モジュールを使用する人はいつでも必要になる場合があります。現在、モジュールで解析する重要なパラメーターをいくつか宣言していますが、すべてのパラメーターで展開する必要があります。

add_argument で宣言せずに、モジュール内のすべてのパラメーターを提供することを考えました。すべてのパラメーターの宣言も必要な parse_known_args で試しました。

モジュールで宣言せずに、すべてのパラメーターを呼び出し元のモジュールに渡す方法はありますか? 可能であれば、どのようにすればよいか教えてください。

前もって感謝します、

4

3 に答える 3

4

hpaulj、mguijarr、mike に感謝します。

次のように、上記のすべての入力で問題を解決できました。

私のモジュール:

import sys
import argparse
parser = argparse.ArgumentParser(description='something')
parser.add_argument('--my_env', help='my environment')

if __name__=='__main__':
    args,rest = parser.parse_known_args()
    rest_arg = ['calling_module.py']
    rest_arg.extend(rest)
    sys.argv = rest_arg
    import calling_module
    calling_module.main()
于 2013-09-30T19:19:20.393 に答える
0

サードパーティ モジュールを呼び出している場合、考えられる解決策は、実行時にsys.argvsys.argcを変更して、呼び出しているモジュールの正しいパラメーターを反映することです。

于 2013-09-30T03:39:53.847 に答える