Como faço para eliminar os consoles do Windows de processos gerados no Python (2.7)? [duplicado]
Possível duplicado:
Executando um processo em pythonw com o Popen sem um console
Estou usando python 2.7 no Windows para automatizar conversões RAW em lote usando dcraw e PIL.
O problema é que abro um console do Windows sempre que executo o dcraw (o que acontece a cada dois segundos). Se eu executar o script usando como .py, é menos irritante, pois apenas abre a janela principal, mas eu preferiria apresentar apenas a GUI.
Estou envolvido assim:
args = [this.dcraw] + shlex.split(DCRAW_OPTS) + [rawfile]
proc = subprocess.Popen(args, -1, stdout=subprocess.PIPE)
ppm_data, err = proc.communicate()
image = Image.open(StringIO.StringIO(ppm_data))
Agradecimentos a Ricardo Reyes
Revisão menor dessa receita, em 2.7, parece que você precisa obterSTARTF_USESHOWWINDOW
de_subprocess
(você também pode usarpywin32
se você quiser algo que pode ser menos propenso a mudanças), então para a posteridade:
suinfo = subprocess.STARTUPINFO()
suinfo.dwFlags |= _subprocess.STARTF_USESHOWWINDOW
proc = subprocess.Popen(args, -1, stdout=subprocess.PIPE, startupinfo=suinfo)