Передача объекта в rpyc не удалась
Я пытаюсь передать объект в качестве параметра, используя 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 и подключаюсь к сайту, это должно работать.
Есть идеи?
1 ответ
Конфигурация должна быть настроена на стороне клиента и на стороне сервера.
Основная ценность для изменения allow_public_attrs : True
если только открытые переменные должны быть доступны или allow_all_attrs : True
если необходимо получить доступ к закрытым и защищенным переменным и методам (т. е. к тем, которые начинаются с '_').
На стороне клиента код подключения записывается так же, как в приведенном выше вопросе, а код сервера выглядит следующим образом:
server = ThreadedServer(MyService, port = 12345,
protocol_config = {"allow_public_attrs" : True})
Для получения дополнительной информации обо всех доступных параметрах конфигурации см.: