5

我对此进行了一些研究,发现了一些类似的问题,但没有一个回答我真正想要的。我了解如何通过multiprocessing模块创建和使用流程。但是当我创建一个新进程时,我想生成一个新的控制台窗口,仅用于该进程的使用、打印等,这样子进程就不会共享父进程的控制台窗口。有没有办法用模块做到这一点multiprocessing

4

1 回答 1

5

如果您要生成一个新的控制台窗口,那么您将启动一个新的 Windows 控制台进程以及在其中运行的新 python 进程。

因此,简短(且无益)的答案是multiprocessing不会这样做,因为它只会产生 python 进程。

但是,我可以看到两种解决方法;

  • 您使用multiprocessing并且每个过程都会创建一个Tkinter显示您想要的文本的窗口。这个问题有一个将logging输出发送到Tkinter窗口的示例。我建议Tkinter因为它已经与 python 一起提供,你可以使用PyQtwxWidgets

  • subprocess用来生成一个完全独立的新 python 进程(或控制台窗口 + 进程)。请注意,您将无法通过.join()这种方式轻松地共享或共享线程状态。这个问题有一个如何创建新的python线程和窗口的例子。

于 2013-02-18T14:37:33.423 回答