python - 子进程似乎在 pyinstaller exe 文件中不起作用
问题描述
当我使用 运行它时,我的程序tkinter
运行良好,当我使用 pyinstallerPyCharm
创建文件时,我没有错误。我粘贴在与我相同的文件夹中,运行它后,我认为它在哪里,它没有回答,因为我在 subprocess 行及其工作之前。.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)
解决方案
您可以在 -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)
推荐阅读
- android - 如何在 Android 8.1 及更高版本中更改默认通知
- mediawiki - 如何让 MediaWiki 搜索忽略重音符号?
- c++ - OpenGL 2D modelToWorld 矩阵不起作用
- c++ - 虚拟继承不适用于特定的 g++ 版本
- laravel - Laravel 5.7 未定义变量
- javascript - 我如何为我访问的每个页面执行这行代码,而不是在我单击书签时?
- r - 修改现有代码以将 geom_count 插入 ggplot
- ubuntu - 如何使用 MIPI 相机在 NanoPC T4 中获取 cam(0)?
- java - 在 intellij idea 中设置 tomcat 的问题
- vb.net - 更新标签的文本