pyinstall不适用于选项--noconsole

时间:2019-08-02 22:56:40

标签: python pyinstaller

在不带--windowed或--noconsole选项的python文件上使用pyinstaller时,它可以正常工作,但是当我这样做时,会出现此错误。

 Failed to execute script

这是我的python代码:

 import subprocess
 sb = subprocess.run('dir',shell=True, stdin=None, stdout=subprocess.PIPE, 
 stderr=subprocess.PIPE)
 print(sb.stdout + sb.stderr)

Pyinstaller命令:

  pyinstaller -F --windowed script.py

2 个答案:

答案 0 :(得分:0)

当使用带有Popen窗口的PyInstaller时,因为运行时不存在控制台,您需要处理stdin

import subprocess
sb = subprocess.run('dir', shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=subprocess.PIPE)
print(sb.stdout + sb.stderr)

答案 1 :(得分:0)

我发现了解决方法

proc = subprocess.Popen(conn, stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=subprocess.DEVNULL, shell=True)
stdout, stderr = proc.communicate()
print(stdout + stderr)

它看起来很生动,我必须将stdin设置为subprocess.DEVNULL,我不确定为什么,但是对我来说很好。