Python multiprocessing module, Windows, spawn new console window with the creation of a new process

console, multiprocessing, python, windows

Solution

If you're going to spawn a new console window, then you're starting a new Windows console process as well as the new python process running inside it.

So the short (and unhelpful) answer would be that `multiprocessing` won't do this as it only spawns python processes.

However, I can see two ways around this;

You use `multiprocessing` and each process creates a `Tkinter` window displaying the text you desire. This question has an example for sending `logging` output to a `Tkinter` window. I'm suggesting `Tkinter` as it already comes with python, you could use `PyQt`, `wxWidgets` etc.

You use `subprocess` to spawn an entirely separate and new python process (or console window + process). Note that you won't be able to `.join()` or share thread states easily this way. This question has an example of how to create a new python thread and window.

Problem

I've done some research on this and found somewhat similar questions but none answer what I'm really looking for. I understand how to create and use processes with the `multiprocessing` module. But when I create a new process, I would like to spawn a new console window just for the use of that process, for printing and so on, so that the child processes don't share the parent process's console window. Is there a way of doing that with the `multiprocessing` module?

Original source

Related problems