当我尝试pip install streamlit失败并显示错误消息时:
错误:“无法为使用 PEP 517 且无法直接安装的 pyarrow 构建轮子”
我尝试pip install pyarrow直接安装但仍然给出相同的错误消息
我知道如何通过 zeromq 从 C++ 向 python 发送字符串消息。
这是我知道的发送字符串消息的代码:
C++ 发件人代码:
void *context = zmq_ctx_new();
void *publisher = zmq_socket(context, ZMQ_PUB);
int bind = zmq_bind(publisher, "tcp://localhost:5563");
std::string message = "Hello from sender";
const char *message_char = message.c_str();
zmq_send(publisher, message_char, strlen(message_char), ZMQ_NOBLOCK);
Run Code Online (Sandbox Code Playgroud)
Python接收器代码:
context = zmq.Context()
receiver = context.socket(zmq.SUB)
receiver.connect("tcp://*:5563")
receiver.setsockopt_string(zmq.SUBSCRIBE, "")
message = receiver.recv_string()
Run Code Online (Sandbox Code Playgroud)
我想要的是将图像从 c++ zeromq 发布者发送到 python 接收器。
对于发送字符串数据,以下代码有效:
context = zmq.Context()
socket = context.socket(zmq.PUB)
socket.bind("tcp://*:5667")
socket.send_string("my string data")
Run Code Online (Sandbox Code Playgroud)
对于发送图像(ndarray)以下代码有效:
def send_array(socket, img, flags=0, copy=True, track=False):
"""send a numpy array with metadata"""
md = dict(
dtype = str(img.dtype),
shape = img.shape,
)
socket.send_json(md, flags|zmq.SNDMORE)
return socket.send(img, flags, copy=copy, track=track)
context = zmq.Context()
socket = context.socket(zmq.PUB)
socket.bind("tcp://*:5667")
send_array(socket, my_ndarray_image )
Run Code Online (Sandbox Code Playgroud)
但我确实需要将字符串消息与图像文件一起发送。有没有办法在同一个请求中附加消息?
欢迎任何想法!谢谢