【问题标题】:Python multiprocessing module, Windows, spawn new console window with the creation of a new processPython 多处理模块,Windows,通过创建新进程产生新的控制台窗口
【发布时间】:2013-02-18 13:07:33
【问题描述】:

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

【问题讨论】:

  • 我不知道该怎么做。我很好奇为什么你需要一个子进程的新控制台窗口。使用多处理模块似乎是一件相当奇怪的事情。

标签: python windows console multiprocessing


【解决方案1】:

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

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

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

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

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

【讨论】:

  • 好的,谢谢!非常简洁。我想我会使用 GUI 解决方案,因为我的应用程序需要子进程来轻松共享数据。
  • 假设您从父进程 (os.system("start cmd.exe") 生成新的控制台窗口。有没有办法指定和分配选择子进程的输出流来选择控制台窗口?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-14
  • 1970-01-01
相关资源
最近更新 更多