ZMQ套接字类型:Unicode字符串仅错误:是否有修复程序



试图在命令提示中运行以下python代码:我正在使用python 2。

import zmq
context = zmq.Context()
socket = context.socket(zmq.SUB)
socket.connect('tcp://0.0.0.0.:6667')
socket.setsockopt_string(zmq.SUBSCRIBE, 'value')

我执行时会遇到以下错误:

socket.setsockopt_string(zmq.SUBSCRIBE, value)   File "C:Program FilesAnaconda2libsite-packageszmqsugarsocket.py", line 192, in >set_string
raise TypeError("unicode strings only") TypeError: unicode strings only

您可以在解决方案上建议吗?

socket.setsockopt_string接受optval的 unicode字符串。

如果仅在Python2中运行代码,则应使用

sock.setsockopt(zmq.SUBSCRIBE, b"value")

如果您想同时支持Python2和Python3,则可以使用

try:
    sock.setsockopt(zmq.SUBSCRIBE, b'value')
except TypeError:
    sock.setsockopt_string(zmq.SUBSCRIBE, b'value')

看看http://pyzmq.readthedocs.io/en/latest/unicode.html

最新更新