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:
- The
multiprocessing
module needs to set an environment variable when it spawns worker processes. - The
subprocess
module needs to explicitly handlestdin
,stdout
, andstderr
, because the standard file handles aren't set for subprocesses to inherit. - 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"