Скрытие окна консоли приложения Python GUI с помощью py2exe

У меня есть программа Python, использующая Qt (на самом деле PyQt4), и когда я запускаю ее из main.py, я получаю окно консоли и окно графического интерфейса (конечно, в Windows).

Затем я компилирую свою программу с помощью py2exe, и main.exe успешно создается. Однако, если я запустил main.exe (это то, что будут делать пользователи программы), консольное окно Python все равно появится, и весь мой отладочный текст будет выведен в это окно.

Я хочу скрыть окно строки cmd, когда мое приложение запущено, и я хочу, чтобы только мой графический интерфейс был виден пользователю при запуске из файла .exe.

Это возможно?


person Ahmet Alp Balkan    schedule 18.07.2010    source источник


Ответы (4)


Ага, это возможно.

Если я использую

setup(console=['__main__.py'], options={"py2exe":{"includes":["sip"]}})

Он создает консольное приложение, однако, если я использую

setup(windows=['__main__.py'], options={"py2exe":{"includes":["sip"]}})

он не показывает консоль в файле .exe. Но вывод выводится в файл main.exe.log в папке .exe. Будь осторожен.

person Ahmet Alp Balkan    schedule 18.07.2010
comment
Чтобы подавить вывод, вы можете перенаправить stdout, как в coreygoldberg.blogspot.com/2009/05/ или в другое средство ведения журнала. - person ars; 18.07.2010
comment
Для меня sip не был распознан, но я смог собрать свой exe и заставить его работать, просто используя setup (windows = ['fileName.py']) - person Nick Williams; 04.10.2014
comment
Мне это решение не подходит. Это мой код setup( options = {'py2exe': {'bundle_files': 1, 'compressed': True}}, console = ["main.pyw"], zipfile = None, ) - person the_prole; 26.11.2014

Я сомневаюсь, что это влияет на py2exe, но это связано с вопросом. Чтобы запустить графический интерфейс Python в Windows без терминала, используйте pythonw.exe вместо python.exe. Это должно произойти автоматически, если вы закончите имя файла на «.pyw».

person robert    schedule 18.07.2010

Возможно, это не связано напрямую с вашим вопросом, но я думаю, что стоит попробовать.

Это легко сделать с помощью PyInstaller, используя следующий код.

pyinstaller -w myscript.py

Вот так просто, и все решено!

person Chimaobi Emmanuel Ezeigbo    schedule 08.04.2016

Самый простой способ, который я нашел, - это добавить -c при использовании консоли для создания .exe.
Если вы наберете cmd в проводнике файлов, введите следующее: python setup.py py2exe -c

Мой установочный файл был настроен, как показано ниже:

import distutils.core import setup
import py2exe
setup(windows=['myprogram.py'])
person frozen_fruit    schedule 04.02.2021