【发布时间】:2018-08-04 12:39:03
【问题描述】:
在 32 位 Windows 机器上运行的 Pyro4 服务器正在使用 img.tostring() 将 numpy 图像数据作为字符串提供,转换前报告的 dtype 是 int32。
服务器代码如下:
def getLastPhase(self):
print("Sending the data now: ")
print( self.lastPhase.dtype )
return self.lastPhase.tostring()
客户端代码如下:
data = getLastPhase()
在 Linux 机器上接收数据,len( data ) = 4177920 或精确的图像大小(以字节为单位 (1024x1020 x4))。
但是,使用fromstring( data, dtype='int32' ) 会导致异常:
ValueError: string size must be a multiple of element size
如果使用int16 而不是int32,则不会引发异常,但数据是无意义的。
为什么在字符串大小与我的数据大小匹配的情况下会引发此异常,而在 int16 情况下不会引发此异常?
Windows和Linux下Python中的string有区别吗?
任何关于如何克服这个问题的想法都将不胜感激。
编辑:Windows机器上的python版本是2.7,而Linux上是3.6
【问题讨论】:
标签: python linux windows numpy tostring