Python zmq_getsockopt错误:zmq.error.ZMQError:ipc路径没有这样的文件或目录

Python zmq_getsockopt错误:zmq.error.ZMQError:ipc路径没有这样的文件或目录,python,zeromq,pyzmq,low-latency,distributed-computing,Python,Zeromq,Pyzmq,Low Latency,Distributed Computing,我是新使用ZeroMQ的,所以我正在努力编写一些代码 如果执行以下代码,则不会显示错误: import zmq.asyncio ctx = zmq.asyncio.Context() rcv_socket = ctx.socket(zmq.PULL) rcv_socket.connect("ipc:///tmp/test") rcv_socket.bind("ipc:///tmp/test") 但是,如果我尝试使用函数zmq\u getsockopt(),它会失败: import zmq.

我是新使用ZeroMQ的,所以我正在努力编写一些代码

如果执行以下代码,则不会显示错误:

import zmq.asyncio
ctx = zmq.asyncio.Context()
rcv_socket = ctx.socket(zmq.PULL)

rcv_socket.connect("ipc:///tmp/test")

rcv_socket.bind("ipc:///tmp/test")
但是,如果我尝试使用函数
zmq\u getsockopt()
,它会失败:

import zmq.asyncio

ctx = zmq.asyncio.Context()
rcv_socket = ctx.socket(zmq.PULL)

rcv_socket.connect("ipc:///tmp/test")

socket_path = rcv_socket.getsockopt(zmq.LAST_ENDPOINT)

rcv_socket.bind("ipc://%s" % socket_path)
然后我得到:

zmq.error.ZMQError:ipc路径“b”没有这样的文件或目录ipc:///tmp/test“

“…刚开始使用ZeroMQ,因此我正在一些代码进行斗争”

首先,欢迎来到Zero的禅宗艺术


如果您从未使用过ZeroMQ,
您可能会喜欢在深入了解更多细节之前先看看


好吧,如果你首先理解游戏规则,而不是从崩溃中学习,你会过得更好(是的,与“想要成为福音传道者的大师”向人群灌输的“仅仅编码”就足够了——这对于做一件严肃的事来说是不够的)

这就是为什么:

如果您阅读了已发布的API,如果您对系统的结构没有了解,并且不了解其内部和外部行为(框架的游戏规则
),那么大多数时候您仍然会感到困惑:

ZMQ\u LAST\u ENDPOINT
选项应检索TCP和IPC传输绑定的最后一个端点。返回值将是ZMQ DSN形式的字符串。请注意,如果TCP主机是
INADDR\u ANY
,由
*
指示,则返回的地址将是
0.0.0
(对于IPv4)

这说明了这一点,但在不了解概念的情况下,这一点仍然隐藏在你的视线之外


最好的下一步 如果你真的很认真,在阅读了上面的链接后,下一步最好的办法是停止编码,首先花点时间阅读和理解Pieter HINTJENS的精彩著作《代码连接,第一卷》
,这确实是一篇必须阅读的文章,绝对值得你付出所有的时间和努力

然后,您将看到为什么这永远不会飞:

import zmq.asyncio; ctx = zmq.asyncio.Context()
rcv_socket        = ctx.socket( zmq.PULL )
rcv_socket.connect( "ipc:///tmp/test" )

socket_path = rcv_socket.getsockopt( zmq.LAST_ENDPOINT )

rcv_socket.bind(    "ipc://%s" % socket_path )
鉴于这一点可能(但此处仍然没有处理以空结尾的字符
字符串
,这本身就是软件设计实践和/或自律性差的标志,或两者兼而有之):

“…刚开始使用ZeroMQ,因此我正在一些代码进行斗争”

首先,欢迎来到Zero的禅宗艺术


如果您从未使用过ZeroMQ,
您可能会喜欢在深入了解更多细节之前先看看


好吧,如果你首先理解游戏规则,而不是从崩溃中学习,你会过得更好(是的,与“想要成为福音传道者的大师”向人群灌输的“仅仅编码”就足够了——这对于做一件严肃的事来说是不够的)

这就是为什么:

如果您阅读了已发布的API,如果您对系统的结构没有了解,并且不了解其内部和外部行为(框架的游戏规则
),那么大多数时候您仍然会感到困惑:

ZMQ\u LAST\u ENDPOINT
选项应检索TCP和IPC传输绑定的最后一个端点。返回值将是ZMQ DSN形式的字符串。请注意,如果TCP主机是
INADDR\u ANY
,由
*
指示,则返回的地址将是
0.0.0
(对于IPv4)

这说明了这一点,但在不了解概念的情况下,这一点仍然隐藏在你的视线之外


最好的下一步 如果你真的很认真,在阅读了上面的链接后,下一步最好的办法是停止编码,首先花点时间阅读和理解Pieter HINTJENS的精彩著作《代码连接,第一卷》
,这确实是一篇必须阅读的文章,绝对值得你付出所有的时间和努力

然后,您将看到为什么这永远不会飞:

import zmq.asyncio; ctx = zmq.asyncio.Context()
rcv_socket        = ctx.socket( zmq.PULL )
rcv_socket.connect( "ipc:///tmp/test" )

socket_path = rcv_socket.getsockopt( zmq.LAST_ENDPOINT )

rcv_socket.bind(    "ipc://%s" % socket_path )
鉴于这一点可能(但此处仍然没有处理以空结尾的字符
字符串
,这本身就是软件设计实践和/或自律性差的标志,或两者兼而有之):


哇,这真的很有帮助,在继续之前我需要做一些阅读。谢谢你的回答。评论的措辞似乎是为了吓跑人们,而不仅仅是解释。哇,这真的很有帮助,在继续之前,我需要做一些阅读。谢谢你的回答。评论的措辞似乎是吓跑别人,而不仅仅是解释