我想使用只能在远程rpyc服务器上访问的python模块。以下两种访问远程计算机上的模块的方法有何不同:
“”在客户端:“”“
my_local_mod_ref = my_rpyc_connection.root.getmodule("remote_module_name")
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
如果存在差异,两种替代方案中的哪一种更清洁或更可取?
答案 0 :(得分: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
是开箱即用的,因为非常有用,所以你不必明确地定义它(或类似的东西)以实现这个目标。