在不带--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
答案 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,我不确定为什么,但是对我来说很好。