有人可以解釋我,我怎麼能返回pyro4中的複雜對象? ,這裏是我的代碼....和輸出。 我的cody很簡單,我只想返回客戶端中的複雜對象。我不想只返回那樣的字符串,數字或者字母。 SERVER(greeting.py)pyro4返回複雜對象
import Pyro4
from lib import obj
class GreetingMaker(object):
def get_obj():
return obj()
factory = staticmethod(get_obj)
if __name__=="__main__":
greeting_maker=GreetingMaker()
daemon=Pyro4.Daemon() # make a Pyro daemon
ns=Pyro4.locateNS() # find the name server
uri=daemon.register(greeting_maker) # register the greeting object as a Pyro object
ns.register("example.greeting", uri) # register the object with a name in the name server
print "Ready."
daemon.requestLoop() # start the event loop of the server to wait for calls
LIB(lib.py)
class obj(object):
dato = 'thing'
CLIENT(client.py)
import Pyro4
from lib import obj
if __name__=="__main__":
greeting_maker=Pyro4.Proxy("PYRONAME:example.greeting") # use name server object lookup uri shortcut
a = greeting_maker.factory()
OUTPUT客戶
Traceback (most recent call last):
File "client.py", line 6, in <module>
a = greeting_maker.factory()
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Pyro4/core.py", line 168, in __call__
return self.__send(self.__name, args, kwargs)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Pyro4/core.py", line 366, in _pyroInvoke
data = serializer.deserializeData(msg.data, compressed=msg.flags & message.FLAGS_COMPRESSED)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Pyro4/util.py", line 162, in deserializeData
return self.loads(data)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Pyro4/util.py", line 461, in loads
return self.recreate_classes(serpent.loads(data))
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Pyro4/util.py", line 370, in recreate_classes
return self.dict_to_class(literal)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Pyro4/util.py", line 349, in dict_to_class
raise Pyro4.errors.ProtocolError("unsupported serialized class: " + classname)
Pyro4.errors.ProtocolError: unsupported serialized class: lib.obj
我想要返回客戶端中複雜的對象:/
感謝
碼刷新:) 現在我有其他錯誤:S
焦不能老是這個序列化對象或沒有人?_ _main_ _.object? – xXcoronaXx 2014-09-03 18:18:46
刪除我的評論,因爲他們是不正確的。檢查下面的答案。 – 2014-09-03 18:36:09