我有一个Python程序使用Qt(实际上是PyQt4),当我从main.py启动它时,我得到一个控制台窗口和GUI窗口(当然是在Windows上)。
然后我用py2exe编译我的程序并成功创建了main.exe。但是,如果我运行main.exe(这是程序用户将要执行的操作)仍然会出现Python的控制台窗口,并且我的所有调试文本都被标记到该窗口。
我希望在我的应用程序运行时隐藏cmd行窗口,并且我希望从.exe文件执行时,用户只能看到我的GUI。
这可能吗?
答案 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'])