我有Python的多处理模块的麻烦。我现在用的是Process类来产生新的进程,以便利用我的第二个核心。该第二进程加载一串数据到RAM中,然后等待消耗的耐心代替。

我想看看有什么印有print命令的过程,但是,我没有看到任何东西,它打印。我只看到父进程打印什么。现在,这对我来说很有意义,因为他们生活在两个不同的过程。第二过程不产卵自己的壳/标准输出窗口,也不是它的输出发送到父。然而,当这个过程crashs,它打印的是我的脚本告诉它打印的一切,再加上堆栈跟踪和错误。

我想知道是否有子进程的打印输出发送到第一过程中,还是有它产生一个外壳/标准输出,这样我可以调试它的简单方法。我知道我可以创建一个专门用于传输打印到父,以便它可以打印这些标准输出multiprocessing.Queue,但我不喜欢这样做,如果一个简单的解决方案存在。

有帮助吗?

解决方案

您是否尝试过冲洗标准输出?

import sys
print "foo"
sys.stdout.flush()
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top