subprocess seems not working in pyinstaller exe file subprocess seems not working in pyinstaller exe file tkinter tkinter

subprocess seems not working in pyinstaller exe file


You can compile your code in -w mode or --windowed, but then you have to assign stdin and stderr as well.

So change:

s = subprocess.Popen([EXE,files,'command'],shell=True, stdout=subprocess.PIPE)

to:

s = subprocess.Popen([EXE,files,'command'],shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=subprocess.PIPE)


Problem was solved by not using -w command for generating exe file from .py script.


Use this function to get the command's output instead. Works with -F and -w option:

import subprocessdef popen(cmd: str) -> str:    """For pyinstaller -w"""    startupinfo = subprocess.STARTUPINFO()    startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW    process = subprocess.Popen(cmd,startupinfo=startupinfo, stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=subprocess.PIPE)    return decode_utf8_fixed(process.stdout.read())