subprocess seems not working in pyinstaller exe file

前端 未结 3 1642
无人及你
无人及你 2020-12-16 04:28

My program in tkinter is working well when I am running it using PyCharm, when I am creating .exe file using pyinstaller,
py

相关标签:
3条回答
  • 2020-12-16 04:57

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

    0 讨论(0)
  • 2020-12-16 05:04

    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)
    
    0 讨论(0)
  • 2020-12-16 05:11

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

    import subprocess
    def 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())
    
    0 讨论(0)
提交回复
热议问题