2

リモート rpyc サーバーでのみアクセスできる python モジュールを使用したいと考えています。リモート マシン上のモジュールにアクセスする次の 2 つの方法に違いはありますか:


""" クライアント側: """

  1. my_local_mod_ref = my_rpyc_connection.root.getmodule("remote_module_name")
  2. my_local_mod_ref = my_rpyc_connection.root.a_func_returning_the_module_ref()


""" サーバー側: """

def exposed_a_func_returning_the_module_ref()
    import my_remote_module_name
    return my_remote_module_name

違いがある場合、2 つの選択肢のどちらがクリーンまたは好ましいですか?

4

1 に答える 1

2

これの実装は次のgetmoduleとおりです。

def exposed_getmodule(self, name):
    """imports an arbitrary module"""
    return __import__(name, None, None, "*")

ご覧のとおり、モジュールがまだサーバーにロードされていない場合、呼び出しによってgetmoduleインポートされ、(どちらの方法でも) オブジェクト モジュールへの netref が返されます。

これが の動作と一致する場合、a_func_returning_the_module_ref()違いはありません。

getmodule非常に便利なため、すぐに使用できるので、この目標を達成するために明示的に定義する必要はありません (または同様のものを定義する必要はありません) 。

于 2015-07-13T19:31:01.427 に答える