2

我想使用只能在远程 rpyc 服务器上访问的 python 模块。以下两种访问远程机器上的模块的方式有区别吗:


“””在客户端:“””

  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

如果有区别,这两种选择中的哪一种更清洁或更可取?

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 回答