首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Pyro4客户端未收到消息

Pyro4客户端未收到消息
EN

Stack Overflow用户
提问于 2015-10-06 19:35:00
回答 1查看 945关注 0票数 0

当一个简单的numpy数组的大小超过某个阈值时,我在从Pyro4服务器(version 4.39,serializer= pickle)取回它时遇到了问题。服务器处理请求并回复,但客户端保持挂起状态

代码如下:

服务器代码:

代码语言:javascript
运行
复制
   import numpy as np, Pyro4

   class U(object):
       def __init__(self):
           self.Data = np.arange(10000000).reshape(200,50000)
           print self.Data.shape

       def get(self,name):
           print '%s Requested' % name
           return self.Data


   def run():
       Uni         = U()
       daemon      = Pyro4.Daemon(host='localhost')
       ns          = Pyro4.locateNS()
       uri         = daemon.register(Uni)
       ns.register("test",uri)
       print 'Up and waiting ...'
       daemon.requestLoop()

   if __name__ == '__main__':
       run()

客户端代码:

代码语言:javascript
运行
复制
   import Pyro4
   ns = Pyro4.locateNS()
   uri = ns.lookup('test')
   U=Pyro4.Proxy(uri)
   Data = U.get('Data')

服务器输出:(200,50000)启动并等待...请求的数据

因此,Pyro服务器似乎会处理来自客户端的请求并返回数据,但是客户端永远不会收到数据,并且会无限期地挂起,等待接收消息。

PS:-相同的代码适用于较小的数组(200,5000)

有没有人知道问题出在哪里?

非常感谢你的帮助,

EN

回答 1

Stack Overflow用户

发布于 2015-10-06 21:29:34

当我运行它时,客户端停止并返回

代码语言:javascript
运行
复制
Traceback (most recent call last):
  File "client.py", line 5, in <module>
    Data = U.get('Data')
  File "C:\python34\lib\site-packages\Pyro4\core.py", line 171, in __call__
    return self.__send(self.__name, args, kwargs)
  File "C:\python34\lib\site-packages\Pyro4\core.py", line 426, in _pyroInvoke
    raise data
TypeError: don't know how to serialize class <class 'numpy.ndarray'>. Give it vars() or an appropriate __getstate__
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32968896

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档