微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

gevent TypeError:无法将 str 连接到 bytearray

如何解决gevent TypeError:无法将 str 连接到 bytearray

我在我的代码中使用了 gevent 库。它返回以下错误

TypeError: can't concat str to bytearray

我正在使用 python3.5gevent 20.9.0 我什至尝试将 gevent 降级到旧版本,但同样的问题仍然存在。

当我尝试导入和使用以下类时,出现以下错误

  from gevent.pywsgi import WsgiServer,WsgiHandler
  class handler_class(WsgiHandler):
    def __init__(self,*args,**kwargs):
      WsgiHandler.__init__(self,**kwargs)
      self.socket.setsockopt(socket.soL_SOCKET,socket.so_KEEPALIVE,1)

  family = socket.AF_INET6 if enable_ipv6 else socket.AF_INET
  sock = WsgiSocket(family,socket.soCK_STREAM)
  sock.setsockopt(
      socket.soL_SOCKET,socket.so_REUSEADDR,int(bool(allow_reuse_address)))
  sock.settimeout(timeout)
  sock.bind(server_address)
  sock.listen(max_size)
  server = WsgiServer(sock,handler,log=open(os.devnull,"w+"),spawn=max_size or "default",handler_class=handler_class)
  server.serve_forever()

当我查看 pywsgi 文件时,我发现错误来自代码中的以下部分。

     def _write(self,data,_bytearray=bytearray):
        if not data:
            # The application/middleware are allowed to yield
            # empty bytestrings.
            return

        if self.response_use_chunked:
            # Write the chunked encoding header
            header_str = b'%x\r\n' % len(data)
            towrite = _bytearray(header_str)

            # data
            towrite += data
            # trailer
            towrite += b'\r\n'
            self._sendall(towrite)
        else:
            self._sendall(data)```


Can anyone suggest if they faced the similar issue,aor is there any suggested workaround for this.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。