问题标签 [pyzmq]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 使用pyzmq零拷贝共享数据
在 python 中寻找 IPC 的有效解决方案时,我偶然发现了 zeromq;我有几个 python 进程需要对来自主进程中的 dict 的数据进行一些 cpu 密集型处理。这些工作进程只从字典中读取,只有主进程可以更改字典。dict 中的数据会发生变化,但会通过主进程原子地发生变化。
理想情况下,我有一块共享内存,所有工作进程都可以从中读取字典,不幸的是,这在 python 中似乎是不可能的。
使用像 redis 或 memcache 这样的缓存听起来有点矫枉过正(不想使用 TCP 和酸洗来分享我已经在内存中以本机格式存在的东西)..
因此,作为替代方案,我想使用 zeromq 将相关数据从主 dict 推送到使用 zeromq IPC 套接字的订阅工作者。这意味着我(不幸的是)必须从主 dict 序列化相关部分(使用 msgpack?),然后使用 zmq 消息推送它。我读到可以使用零拷贝来做到这一点,这样我就不会最终复制数据两次,如果我在我的 msgpacked 二进制字符串上使用 copy=False 会自动发生这种情况吗?这是解决我的问题的方法还是你们有提示如何更有效地解决这个问题?
谢谢!
马汀
json - 如何修复错误:没有 JSON 对象可以从 zmq DEALER 解码到 ROUTER 消息?
我有一个发送到 ROUTER 的 DEALER 套接字,一旦消息到达,我无法将其解码为 json,如果我打印接收到的文本并将其复制到 python 终端,我可以对其进行解码,但接收代码无法。
这是发送的代码:
这是接收它的代码:
发送此消息时:
这是我收到的:
如果我尝试解码它(上面列表的第二部分:)
字典 = json.loads(消息[1])
我遇到了这个错误:
出了什么问题?如果我使用 PUSH 和 PULL,相同的代码可以正常工作。最终结果我想要一个 N 到 1 zmq 方案,其中多个独立进程可以发送到一个接收器,这就是我尝试使用 DEALER-ROUTER 的原因。
python - 为什么 zeromq 中推/拉的这种实现不返回所有消息
我在 zeromq 中有一个客户端服务器对。奇怪的是,拉取客户端只接收所有其他发送的消息。这是我的实现
为什么 read() 只接收所有消息的一半?
pip - 无法在 Ubuntu 12.04.2 LTS 上为 PyPy 2.0.2 安装 PyZMQ 13.1
我以 root 身份使用 pip install 。一切都适用于 CPython,因为它不使用 cffi 后端。使用 PyPy 我收到以下错误:
'/ * * /site-packages/zmq/cffi_core/ 目录存在并包含以下 .py 文件(和相应的 .pyc):
但是,没有__pycache__
目录。
通过查看 cffi Python 文件(尤其是 verifier.py),我发现它找不到以下cffi _g5368a726x67d4e236.pypy-20.so。我也找不到任何地方。我猜它不是出于某种原因而构建的,但是在 pip 安装过程中我没有看到任何错误。
有人有什么主意吗?
sockets - 如何关闭被杀死的程序打开的套接字?
我有一个程序(Python)在某些时候使用
和
套接字,但问题是当程序被杀死时,仍然可以使用以下方法找到套接字:
命令。那么我该怎么做才能让它们在程序被杀死后消失呢?
virtualenv - 在 virtualenv 中设置 ipython 笔记本
我正在使用 Ubuntu 12.04 LTS。我曾多次尝试从 virtualenv 运行 ipython notebook。它不起作用,并显示以下错误消息:
这是当前的安装状态:
我做错什么了吗?
python - 在 zeromq 中从每一侧调用特定函数
我正在寻找一种从 IPC 一侧调用特定功能的方法。
假设这个示例代码:
我想指定'resp'将被转发到的功能,这可能吗?如果不是我怎么能这样做?
python - ZMQ 编码
我目前正在做需要从 PC 到设备进行通信的项目,到目前为止我已经决定使用套接字通信。并写了一些代码。我还在设备本身上将 ZMQ 用于 ipc。
我的脚本通过以文本形式发送数据来工作。我试图将我的数据编码为 utf-8,以便它可以在设备上轻松读取并显示在框架中并根据需要执行任务。但是,我似乎无法使编码正常工作,我尝试在线搜索示例或教程,但似乎找不到任何内容。
我尝试使用 socket.send (msg.encode("UTF-8")) 对我的数据进行编码,并使用 message = socket.recv() 在服务器上接收和打印数据。这可行,但服务器会打印出我不想要的确切文本数据。我不确定这是否是正确的方法,并希望有人能指出我正确的方向来编码和打印编码数据,而无需解码回文本。