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

时间:2010-07-18 11:17:52

标签: python pyqt pyqt4 py2exe

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

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

我希望在我的应用程序运行时隐藏cmd行窗口,并且我希望从.exe文件执行时,用户只能看到我的GUI。

这可能吗?

4 个答案:

答案 0 :(得分:28)

是的,这是可能的。

如果我使用

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

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

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

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

答案 1 :(得分:6)

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

答案 2 :(得分:2)

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

您可以使用以下代码轻松地使用PyInstaller。

pyinstaller -w myscript.py

就这么简单,每件事都解决了!

答案 3 :(得分:0)

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

我的安装文件设置如下:

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