Как удалить консоли Windows из порожденных процессов в Python (2.7)?

Возможный дубликат:
Запуск процесса в pythonw с помощью Popen без консоли

Я использую python 2.7 для Windows для автоматизации пакетных конверсий RAW с использованием dcraw и PIL.

Проблема в том, что я открываю консоль Windows всякий раз, когда запускаю dcraw (что происходит каждые пару секунд). Если я запускаю скрипт, используя как .py, он менее раздражает, так как он только открывает главное окно, но я бы предпочел представить только графический интерфейс.

Я включаю его так:

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)) 

Благодаря Рикардо Рейесу

Незначительный пересмотр этого рецепта, в 2.7 кажется, что вам нужно получить STARTF_USESHOWWINDOW из _subprocess (вы также можете использовать pywin32 если хотите что-то, что может быть немного менее склонным к изменению), поэтому для потомков:

 suinfo = subprocess.STARTUPINFO() suinfo.dwFlags |= _subprocess.STARTF_USESHOWWINDOW proc = subprocess.Popen(args, -1, stdout=subprocess.PIPE, startupinfo=suinfo) 

One Solution collect form web for “Как удалить консоли Windows из порожденных процессов в Python (2.7)?”

При вызове Popen необходимо установить параметр startupinfo .

Вот пример из рецепта Activestate.com :

 import subprocess def launchWithoutConsole(command, args): """Launches 'command' windowless and waits until finished""" startupinfo = subprocess.STARTUPINFO() startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW return subprocess.Popen([command] + args, startupinfo=startupinfo).wait() if __name__ == "__main__": # test with "pythonw.exe" launchWithoutConsole("d:\\bin\\gzip.exe", ["-d", "myfile.gz"]) 
  • Запуск кода Python на Xampp на платформе Windows
  • aysncio не может читать stdin в Windows
  • Использование Wine и py2exe для создания приложений Windows из проекта Python
  • разные обои для каждого экрана для настройки нескольких мониторов в Windows
  • Как определить путь к php.exe на windows - поиск путей по умолчанию?
  • Python: получение времени модификации файла с большим разрешением, чем второй
  • Выполнение Python с Gvim
  • Не-ASCII-символ '\ x90', выполняющий pserve на окнах внутри virtualenv
  • Python - лучший язык программирования в мире.