Как скрыть окно консоли при замораживании приложений wxPython с помощью cxFreeze?
Я разрабатываю приложение Python с использованием wxPython и замораживаю его с помощью cxFreeze. Кажется, все идет хорошо, кроме этого следующего бита:
когда я запускаю исполняемый файл, созданный cxFreeze, появляется пустое окно консоли. Я не хочу это показывать. Я могу как-нибудь это скрыть?
Это, похоже, не документировано на сайте cxFreeze, и Googling не сильно отличался от некоторых подобных проблем с Py2Exe.
спасибо.
4 ответов
это работает до некоторой степени, но у него есть проблемы. Моя программа работает как в режиме консоли, так и в режиме GUI. При запуске с консоли с помощью он работает в режиме консоли. Когда я следовал процедуре ниже, это больше не работает, и моя программа является только приложением GUI.
следующий исходный код исходит из примера файла в \Python\Lib\site-packages\cx_Freeze\samples\PyQt4\setup.py
. Урок дня. Прочтите README.
# A simple setup script to create an executable using PyQt4. This also
# demonstrates the method for creating a Windows executable that does not have
# an associated console.
#
# PyQt4app.py is a very simple type of PyQt4 application
#
# Run the build process by running the command 'python setup.py build'
#
# If everything works well you should find a subdirectory in the build
# subdirectory that contains the files needed to run the application
import sys
from cx_Freeze import setup, Executable
base = None
if sys.platform == "win32":
base = "Win32GUI"
setup(
name = "simple_PyQt4",
version = "0.1",
description = "Sample cx_Freeze PyQt4 script",
executables = [Executable("PyQt4app.py", base = base)])
Для Windows:
вы должны использовать такую строку (используйте папки и имена файлов по мере необходимости)
C:/Python/Scripts/cxfreeze C:/Python/Code/yourprogram.py --base-name=Win32GUI --target-dir C:/Python/Dist
добавить окно консоли не отображается.
Если вы используете Windows, вы можете переименовать расширение вашего" основного " сценария (который запускает приложение).pyw
Вариант 1) Использовать gui2exe muck с различными вариантами.
Вариант 2) Измените свой setup.py с параметром 'base' как таковым.
GUI2Exe_Target_1 = Executable(
# what to build
script = "rf_spi.py",
initScript = None,
base = 'Win32GUI', # <-- add this
targetDir = r"dist",
targetName = "rf_spi.exe",
compress = True,
copyDependentFiles = False,
appendScriptToExe = False,
appendScriptToLibrary = False,
icon = r"wireless.ico"
)