Yo uso ffmpeg para convertir algunos videos. Estoy llamando comando con subprocess.Popen (…)
si = subprocess.STARTUPINFO() si.dwFlags |= subprocess.STARTF_USESHOWWINDOW self.my_pro = subprocess.Popen(cmd, stdin=subprocess.PIPE, stderr=subprocess.PIPE, startupinfo=si) (output, error) = self.my_pro.communicate()
y mato con este método
self.my_pro.kill()
Es okey sin comstackr a exe.
Pero compilé con pyinstaller
con --noconsole
subprocess no funciona. Debo cambiar subprocess.Popen(...)
por subprocess.check_output(...)
Pero esta vez no puedo matar el proceso con self.my_pro.kill()
esto no funciona.
¿Cómo puedo ejecutar el proceso con el que puedo matar y ejecutará pyinstaller noconsole?
Como escribió @jfs, con Popen
tienes que redirigir todo. Olvidaste stdout
Así que este código ya no falla para mí:
si = subprocess.STARTUPINFO() si.dwFlags |= subprocess.STARTF_USESHOWWINDOW self.my_pro = subprocess.Popen(cmd, stdin=subprocess.PIPE, stderr=subprocess.PIPE, stdout=subprocess.PIPE, startupinfo=si)