probablemente se queda esperando a que la ventana termine... te recomiendo que la abras asincronamente es decir, no uses subprocess.call sino subprocess.Popen
subprocess.call(args, *, stdin=None, stdout=None, stderr=None, shell=False)
Run the command described by args. Wait for command to complete, then return the returncode attribute.
class subprocess.Popen(args, bufsize=0, executable=None, stdin=None, stdout=None, stderr=None, preexec_fn=None, close_fds=False, shell=False, cwd=None, env=None, universal_newlines=False, startupinfo=None, creationflags=0)
Execute a child program in a new process. On Unix, the class uses os.execvp()-like behavior to execute the child program. On Windows, the class uses the Windows CreateProcess() function. The arguments to Popen are as follows.
el uso basico es identico
subprocess.call(["ls", "-l"])
variableControlDelProceso = subprocess.Popen(["ls", "-l"])
si no vas a usar pipes ni nada de eso, puedes no declarar la variable
si usas la variables tienes las
opciones de Popen que te permiten ver si el programa finalizó o pasarle comandos