gpt4 book ai didi

python - Thrift python 3.4 TypeError : string argument expected, 得到 'bytes'

转载 作者:行者123 更新时间:2023-11-28 18:36:34 26 4
gpt4 key购买 nike

我正在尝试 Apache Thrift使用 Thrift 似乎支持的 python 3.4,因为它有 lib.linux-x86_64-3.4build 目录下。但我一直收到此错误消息

  File "/home/qunzi/Downloads/thrift-0.9.2/lib/py/build/lib.linux-x86_64-3.4/thrift/transport/TTransport.py", line 163, in write
self.__wbuf.write(buf)
TypeError: string argument expected, got 'bytes'

有人知道发生了什么,并且可能有解决方案吗?

下面是相关代码

socket = TSocket.TSocket('localhost', 9090)
transport = TTransport.TBufferedTransport(socket)
protocol = TBinaryProtocol.TBinaryProtocol(transport)

client = Algo.Client(protocol)
transport.open()
ping_req = PingRequest()
ping_resp = client.ping(ping_req)

整个回溯:

  File "py3client.py", line 36, in <module>
ping_resp = client.ping(ping_req)
File "/home/qunzi/Projects/test/sample_Test/py3.4_thrift/ib/Algo.py", line 66, in ping
self.send_ping(request)
File "/home/qunzi/Projects/test/sample_Test/py3.4_thrift/ib/Algo.py", line 70, in send_ping
self._oprot.writeMessageBegin('ping', TMessageType.CALL, self._seqid)
File "/home/qunzi/Downloads/thrift-0.9.2/lib/py/build/lib.linux-x86_64-3.4/thrift/protocol/TBinaryProtocol.py", line 46, in writeMessageBegin
self.writeI32(TBinaryProtocol.VERSION_1 | type)
File "/home/qunzi/Downloads/thrift-0.9.2/lib/py/build/lib.linux-x86_64-3.4/thrift/protocol/TBinaryProtocol.py", line 111, in writeI32
self.trans.write(buff)
File "/home/qunzi/Downloads/thrift-0.9.2/lib/py/build/lib.linux-x86_64-3.4/thrift/transport/TTransport.py", line 163, in write
self.__wbuf.write(buf)
TypeError: string argument expected, got 'bytes'

最佳答案

虽然这个问题相当死板,但看起来我有答案了:)

thrift 的当前 python 生成器(自 0.9.3 起)生成特定于 python2 的代码。至少我刚刚改变了齿轮和代码,它给了我同样的错误,现在就像一个魅力。

该错误是由于(隐式)将库中所有类似字符串的对象当作字节对象来处理的。但是,在 Python3 中,StringIO 类需要面向字符的字符串 (str),而那些面向字节的字符串会导致异常。

应该向 Thrift 跟踪器提交错误,现在他/她应该改用 Python2。

关于python - Thrift python 3.4 TypeError : string argument expected, 得到 'bytes',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31869321/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com