我正在使用wxPython开发一个Python应用程序并使用cxFreeze将其冻结。除了以下几点之外,一切似乎都很顺利:
当我运行cxFreeze创建的可执行文件时,会弹出一个空白控制台窗口。我不想表现出来。有什么方法可以隐藏它吗?
似乎没有在cxFreeze网站上记录,并且谷歌搜索没有与Py2Exe的类似排序问题区分开来。
感谢。
答案 0 :(得分:19)
这在一定程度上起作用,但它有问题。我的程序在控制台模式和GUI模式下运行。当从控制台运行--console
参数时,它以控制台模式运行。当我按照下面的步骤操作时,这不再起作用了,我的程序只是一个GUI应用程序。
以下源代码来自\Python\Lib\site-packages\cx_Freeze\samples\PyQt4\setup.py
中的示例文件。当天的课程。阅读自述文件。
# 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)])
答案 1 :(得分:18)
对于Windows:
您必须使用这样的行(根据需要使用文件夹和名称)
C:/Python/Scripts/cxfreeze C:/Python/Code/yourprogram.py --base-name=Win32GUI --target-dir C:/Python/Dist
通过添加--base-name=Win32GUI
选项,控制台窗口将不会出现。
答案 2 :(得分:2)
如果您使用的是Windows,则可以将“主”脚本的扩展名(启动应用)重命名为.pyw
答案 3 :(得分:2)
选项1)使用gui2exe来查看各种选项。
选项2)使用'base'参数修改您的setup.py。
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"
)