繁体   English   中英

使用 py2exe 隐藏 Python GUI 应用程序的控制台窗口

[英]Hiding console window of Python GUI app with py2exe

我有一个 Python 程序使用 Qt(实际上是 PyQt4),当我从它的 main.py 启动它时,我得到一个控制台窗口和 GUI 窗口(当然是在 Windows 上)。

然后我用py2exe编译我的程序,main.exe就成功创建了。 但是,如果我运行 main.exe(这是程序用户将执行的操作)仍然会出现 Python 的控制台窗口,并且我的所有调试文本都被标准输出到该窗口。

我想在我的应用程序运行时隐藏 cmd 行窗口,并且我希望在从 .exe 文件执行时我的 GUI 对用户可见。

那可能吗?

是的,这是可能的。

如果我使用

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

它创建了一个控制台应用程序,但是如果我使用

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

它不会在 .exe 文件上显示控制台。 但是输出转储到 .exe 文件夹中的 main.exe.log 文件中。 当心。

我怀疑这对 py2exe 有影响,但这与问题有关。 要在没有终端的 Windows 上运行 python GUI,请使用 pythonw.exe 而不是 python.exe。 如果文件名以“.pyw”结尾,这应该会自动发生。

这可能与您的问题没有直接关系,但我认为值得一试。

通过使用以下代码,您可以使用 PyInstaller 轻松完成此操作。

pyinstaller -w myscript.py

就这么简单,一切都解决了!

我发现的最简单的方法是在使用控制台创建.exe时添加-c
如果在文件资源管理器中键入 cmd,则键入以下内容: python setup.py py2exe -c

我的安装文件设置如下:

import distutils.core import setup
import py2exe
setup(windows=['myprogram.py'])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM