Skip to content Skip to sidebar Skip to footer

Pyinstaller On Windows With --noconsole Simply Won't Work

I have a fairly simple GUI (wxPython) app and is working great. I'm using Windows 7. When compiling it using pyinstaller with -w (or --noconsole or --windowed) and run it, I can se

Solution 1:

Had the same problem. Used the following function instead of subprocess.Popen():

def popen(cmd):
    startupinfo = subprocess.STARTUPINFO()
    startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW
    process = subprocess.Popen(cmd, startupinfo=startupinfo, stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=subprocess.PIPE)
    return process.stdout.read()

the return type is the same as you would get from Popen().communicate()[0] :) Works great with my GUI application. Windowed with pyinstaller --noconsole...

Solution 2:

I would guess that you are somehow launching a subprocess that gets messed up when Python runs without a console window. I have had to solve three problems related to this:

  1. The multiprocessing module needs to set an environment variable when it spawns worker processes.
  2. The subprocess module needs to explicitly handlestdin, stdout, and stderr, because the standard file handles aren't set for subprocesses to inherit.
  3. The subprocess creates a console window, unless you tell it not to.

Post a Comment for "Pyinstaller On Windows With --noconsole Simply Won't Work"