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())