Python将std(in/out/err)流式传输到另一个进程

Python将std(in/out/err)流式传输到另一个进程,python,io,Python,Io,我有一个python进程“在后台”运行。这是一个完全不同的过程中开始的通话。到目前为止,我已经实现了这两个流程,它们用于相互通信。但我愿意以任何方式来实现以下目标 我想做的是让“侦听器”后台进程使用std(in | out | err),就像它们来自“客户机”进程一样。流很重要,这样io就不会被读入内存,而是可以高效地读写,同时也可以避免侦听器进程阻塞。我想这意味着我需要一个较低级别的访问或某种异步/线程/多处理解决方案。这就是我不清楚该怎么做的。例如: while True: # TODO

我有一个python进程“在后台”运行。这是一个完全不同的过程中开始的通话。到目前为止,我已经实现了这两个流程,它们用于相互通信。但我愿意以任何方式来实现以下目标

我想做的是让“侦听器”后台进程使用std(in | out | err),就像它们来自“客户机”进程一样。流很重要,这样io就不会被读入内存,而是可以高效地读写,同时也可以避免侦听器进程阻塞。我想这意味着我需要一个较低级别的访问或某种异步/线程/多处理解决方案。这就是我不清楚该怎么做的。例如:

while True:  # TODO
    conn = listener.accept()
    try:
        callable_, args, kw = conn.recv()
        callable_(*args, **kw)
问题是如何允许callable|高效且无阻塞地执行与std(in | out | err)之间的流传输。监听器也是长时间运行的,我试图支持任意python代码,这些代码在监听器模块导入时从sys import std(in | out | err)执行
仍会像从客户端执行一样看到std(in | out | err)。在导入任何其他内容之前,我可以在侦听器启动时进行设置(修改/替换sys.std(in | out | err))


有没有一种好方法可以透明地传输此io,以便在初始设置之后,侦听器进程运行的代码可以是任意的,并且可以正常地处理std(in | out | err),而不阻塞,等等。?最好不创建新流程,因为目标是减少流程开销,但由于客户机较瘦,最好在客户机端使用多个流程。类似地,如果我必须循环读取/写入std(in | out | err)中的字节段以实现有效的流式传输,那么最好在客户端执行。

我不完全确定我是否理解这个问题,但您是否已经研究过避免阻塞?另一个要求是“不能读入内存”,对此我有点含糊其辞。

您可能需要为您的用例详细说明multiprocessing.connections的错误。澄清后,如果这还不够,请告诉我。您在哪个操作系统下运行?这很重要,因为文件句柄的继承方式有点依赖于系统。我希望它是可移植的/跨操作系统的,但如果您愿意,可以从Linux开始。看看,这都是关于异步通信的。也许您的案例已经包含在一些示例代码中。Re:memory,我的意思是,在写入另一端之前将所有
std(in | out | err)
读入内存是不可接受的。Re:sockets,是的,我认为您是对的。不过我可能应该使用
asyncore
。只能在Windows中的套接字上使用select()。