我正在尝试使用RPyC从客户端向服务器传递一个对象作为参数。但服务器无法访问该对象,我收到了AttributeError。
服务器代码:
class AgentService(rpyc.Service):
def exposed_func(self, obj):
return obj.name
客户代码
self._conn = connect(agent_host, agent_port, config = {"allow_public_attrs" : True})
return self._conn.root.func(obj)
returns: AttributeError: cannot access 'name'.
我正在使用RPyC服务并根据网站进行操作,这应该可行。
有什么想法吗?
答案 0 :(得分:5)
需要在客户端和服务器端调整配置字典。
如果只需要访问公共变量,则要更改的主要值为allow_public_attrs : True
;如果需要访问私有和受保护的变量和方法(即以'_'开头的那些变量和方法),则需要allow_all_attrs : True
在客户端,连接代码按上述问题和服务器代码编写,如下所示:
server = ThreadedServer(MyService, port = 12345,
protocol_config = {"allow_public_attrs" : True})
有关所有可用配置选项的详细信息,请参阅: