我已经对此做了一些研究,发现了一些类似的问题,但没有人回答我真正想要的问题。我了解如何使用multiprocessing
模块创建和使用流程。但是当我创建一个新进程时,我想生成一个新的控制台窗口,只是为了使用该进程,进行打印等,以便子进程不共享父进程的控制台窗口。有没有办法用multiprocessing
模块做到这一点?
答案 0 :(得分:3)
如果您要生成一个新的控制台窗口,那么您将启动一个新的Windows控制台进程以及在其中运行的新python进程。
所以简短(并且没有帮助)的答案是multiprocessing
不会这样做,因为它只会产生python进程。
但是,我可以看到两种解决方法;
您使用multiprocessing
,每个进程都会创建一个显示所需文本的Tkinter
窗口。 This问题有一个将logging
输出发送到Tkinter
窗口的示例。我建议Tkinter
,因为它已经附带python,你可以使用PyQt
,wxWidgets
等。
使用subprocess
生成一个完全独立的新python进程(或控制台窗口+进程)。请注意,您将无法以这种方式.join()
或轻松共享线程状态。 This问题有一个如何创建新的python线程和窗口的示例。