2012-08-19 1 views
5

クライアントからサーバーにRPyCを使用してオブジェクトをパラメーターとして渡そうとしています。しかし、サーバーはオブジェクトにアクセスすることができませんし、私はAttributeErrorを受け取ります。rpycでオブジェクトを渡すと失敗する

サーバコード:私はRPyCサービスを使用してWebサイトにaccodingい

self._conn = connect(agent_host, agent_port, config = {"allow_public_attrs" : True}) 
return self._conn.root.func(obj) 

returns: AttributeError: cannot access 'name'.

class AgentService(rpyc.Service): 
    def exposed_func(self, obj): 
    return obj.name 

クライアントコードは、これは動作するはずです。

アイデア?

+3

David、編集のおかげで、もっとプロフェッショナルに見える... – Ben

答えて

5

設定ディクテーションは、クライアント側とサーバー側で調整する必要があります。

変更する主な値は、公開変数のみをアクセスする必要がある場合はallow_public_attrs : True、プライベート変数と保護された変数とメソッドにアクセスする必要がある場合はallow_all_attrs : Trueです(つまり、 '_'で始まる変数)。クライアント側では

は、接続コードは次のように上記の質問のように、サーバーコードに書かれている:

server = ThreadedServer(MyService, port = 12345, 
         protocol_config = {"allow_public_attrs" : True}) 

利用可能なすべての設定オプションの詳細については、以下を参照してください。

http://rpyc.sourceforge.net/api/core_protocol.html

関連する問題