【发布时间】:2018-10-31 23:02:02
【问题描述】:
当我使用PyCharm 运行它时,我在tkinter 中的程序运行良好,
当我使用 pyinstaller 创建.exe 文件时,pyinstaller -i"icon.ico" -w -F script.py
我没有错误。
我将script.exe 粘贴在与script.py 相同的文件夹中,运行它后,我认为在subprocess 所在的步骤中,它没有回答,因为我在子进程行及其工作之前有print。
有人知道为什么吗?
这是带有子进程的行:
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)
【问题讨论】:
-
在 pyinstaller 生成的二进制文件中使用
subprocess.Popen()需要进行一些修改。检查this recipe 作为示例和对正在发生的事情的解释。 -
@zwer 谢谢,但是当我使用
close_fds=True时,我收到此错误:raise ValueError("close_fds is not supported on Windows " ValueError: close_fds is not supported on Windows platforms if you redirect stdin/stdout/stderr
标签: python tkinter subprocess