Как запустить скрипт Python без появления консоли Windows
Есть ли способ запустить скрипт на Python без командной оболочки, появляющейся на мгновение? Присвоение имен моим файлам с расширением.pyw не работает.
РЕДАКТИРОВАТЬ: проблема решена с ShellExecute()
4 ответа
Используйте функцию ShellExecuteEx.
Это pExecInfo: ***nShow — флаги, которые определяют, как приложение должно отображаться при его открытии.
Попробуйте использовать Питон pythonw.exe исполняемый файл для запуска вашего скрипта.
В ОС Windows — исполняемые файлы, являющиеся консольными приложениями ( python.exe без w является консольным приложением) запускается с отображением окна консоли; с другой стороны, обычные приложения Windows не порождают это черное консольное окно.
Вы можете найти подробности об этих двух исполняемых файлах в этом старом вопросе: pythonw.exe или python.exe?
Во всех установках python начиная с 2.5 (и, возможно, ранее), если установка была выполнена правильно, .py файлы связаны с python.exe а также .pyw файлы связаны с pythonw.exe
Если ассоциации были подделаны или переопределены для конкретного пользователя, это может отличаться.
Запустите следующую команду в cmd:
Если у вас этого нет, вы можете сделать несколько вещей, чтобы это исправить:
Python .exe не будет работать без консоли в фоновом режиме
Я создал программу на Python, которая собирает информацию из активного каталога. Для сбора информации программа запускает определенные сценарии PowerShell для подключения к серверу.
После того, как отладка, казалось, была завершена, я преобразовал файл в .exe с помощью pyinstaller -onefile -w. Когда я запускаю .exe, графический интерфейс открывается без проблем, но когда я пытаюсь выполнить команды, которые подключаются к серверу активного каталога, программа вылетает. Когда это происходит, в консоли нет кода ошибки. После устранения неполадок самостоятельно в течение минуты я понял, что если я создам .exe без -w, заставляющего консоль работать в фоновом режиме, программа будет работать нормально. Проблема в том, что я действительно не хочу, чтобы консоль работала в фоновом режиме, поскольку это должно быть удобное для пользователя приложение.
Могу ли я запустить программу без окна консоли или, по крайней мере, скрыть ее при запуске графического интерфейса? Также извиняюсь, если это глупый вопрос. Я новичок в программировании и даже новичок в PowerShell.
p.s. вот фрагмент кода Python, который запускает сценарий PowerShell:
Ответы (2)
Хорошо, я понял это. Во-первых, все, что не сработало: -Попытка создать .exe с —no console в pyinstaller, а затем манипулировать подпроцессом, чтобы скрыть консоль. -Пробовать другие варианты вне Popen в подпроцессе -Пробовать альтернативные процедуры создания .exe в pyinstaller
Python-сообщество

Доброго вечера. Искал и не нашел: как убрать консоль с фона приложения, после конвертации PyQt4 в exe? Типа, запуска с pyw. Пробовал pyw отправлять на конвертацию — не помогает.
Отредактировано Razor (Дек. 14, 2013 14:38:44)
#2 Дек. 21, 2013 11:08:16
Убрать консоль с PyQt4 script.exe файла
Чем компилируешь? Если Pyinstaller, то в нем есть ключик для этого!
#3 Дек. 21, 2013 13:09:42
Убрать консоль с PyQt4 script.exe файла
Компилирую cx_Freeze. Python 3.2 x32, PyQt4 x32.
#4 Дек. 22, 2013 03:42:47
Убрать консоль с PyQt4 script.exe файла
Вы бы скрипт показали, а так, скорее всего объекту Executable передан параметр base = None (для GUI надо base = “Win32GUI”)
#5 Дек. 22, 2013 09:05:45
Убрать консоль с PyQt4 script.exe файла
В скрипте ничего подобного нету. Я ничего не добавлял в скрипт для компиляции.
А скрипт то значения не имеет — скриптов много и у вех такая штука, но раз вы просите, то вот один, попроще (проблема та же самая, разумеется):

#6 Дек. 23, 2013 00:53:22
Убрать консоль с PyQt4 script.exe файла
#7 Дек. 23, 2013 11:25:51
Убрать консоль с PyQt4 script.exe файла
Опа. Не хочу показаться неряшливым, но что за setup.py? Его ложить вместе с программой и через нее компилировать? Первый раз слышу о ней
Или плохо ищу, или…плохо ищу, но не могу найти, что делать с этим файлом при компиляции. Помогите, пожалуйста.
Избавление от вывода консоли при зависании программ Python с помощью Pyinstaller
Недавно я написал довольно простую программу для моего дедушки, использующую Python с графическим интерфейсом от Tkinter, и он отлично работает для того, для чего он будет его использовать. Однако есть, конечно, уродливое окно вывода консоли. Я успешно избавился от него, просто изменив расширение файла с .py на .pyw. Когда я замораживаю его с помощью PyInstaller, он снова появляется снова! Есть ли способ для меня исправить это?
3 ответа
Если вы хотите скрыть окно консоли, здесь — это документация: Так вы используете опцию —noconsole
Если вам нужна помощь с помощью pyinstaller, чтобы перейти к пункту, где вам нужно использовать опцию —noconsole здесь, это простой учебник для получения есть.
Просто добавьте флаг —noconsole :
Возможно, вы захотите использовать —onefile , который создает отдельный файл .exe вместо папки.
Это одна из первых вещей, которые возникают при поиске этой информации, поэтому я хотел бы добавить то, что нашел для выпуска 3.2 pyinstaller. Если вы уже упаковали свой script, запустив