Python多进程模块,Windows,创建新进程时生成新控制台窗口

5 投票
1 回答
5013 浏览
提问于 2025-04-17 16:15

我做了一些研究,发现有一些类似的问题,但没有一个能真正回答我想要的内容。我知道如何使用multiprocessing模块来创建和使用进程。但是,当我创建一个新进程时,我希望能为这个进程单独打开一个新的控制台窗口,用来打印信息等等,这样子进程就不会和父进程共享同一个控制台窗口。请问有没有办法用multiprocessing模块做到这一点?

1 个回答

5

如果你要打开一个新的控制台窗口,那就意味着你不仅要启动一个新的Python进程,还要启动一个新的Windows控制台进程。

所以简单来说,multiprocessing并不能做到这一点,因为它只会启动Python进程。

不过,我可以给你两个解决办法:

  • 你可以使用multiprocessing,然后让每个进程创建一个Tkinter窗口,显示你想要的内容。这个问题里有个例子,讲的是如何把logging的输出发送到Tkinter窗口。我推荐使用Tkinter,因为它已经包含在Python里,你也可以用PyQtwxWidgets等其他工具。

  • 你可以使用subprocess来启动一个完全独立的新Python进程(或者控制台窗口加进程)。需要注意的是,这样你就不能轻易地使用.join()或者共享线程状态了。这个问题里有个例子,讲的是如何创建一个新的Python线程和窗口。

撰写回答