首页 > 解决方案 > 子进程似乎在 pyinstaller exe 文件中不起作用

问题描述

当我使用 运行它时,我的程序tkinter运行良好,当我使用 pyinstallerPyCharm创建文件时,我没有错误。我粘贴在与我相同的文件夹中,运行它后,我认为它在哪里,它没有回答,因为我在 subprocess 行及其工作之前。.exe
pyinstaller -i"icon.ico" -w -F script.py
script.exescript.pysubprocessprint

有谁知道为什么?

这是子流程的行:

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

编辑:

同样的问题:

s = subprocess.check_output([EXE,files,'command'],shell=True, stderr=subprocess.STDOUT)

标签: pythontkintersubprocess

解决方案


您可以在 -w 模式或 --windowed 下编译您的代码,但是您还必须分配 stdin 和 stderr。

所以改变:

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

至:

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

推荐阅读