Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用py2exe隐藏Python GUI应用程序的控制台窗口_Python_Pyqt_Pyqt4_Py2exe - Fatal编程技术网

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

使用py2exe隐藏Python GUI应用程序的控制台窗口,python,pyqt,pyqt4,py2exe,Python,Pyqt,Pyqt4,Py2exe,我有一个Python程序使用Qt(实际上是PyQt4),当我从main.py启动它时,我会看到一个控制台窗口和GUI窗口(当然是在Windows上) 然后我用py2exe编译了我的程序,并且成功地创建了main.exe。然而,如果我运行main.exe(这是程序的用户将要做的),Python的控制台窗口仍然会出现,并且我的所有调试文本都会显示在该窗口中 我想在应用程序运行时隐藏cmd行窗口,我只想在从.exe文件执行时用户可以看到我的GUI 有可能吗?是的,有可能 如果我使用 setup(con

我有一个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'])

要抑制输出,您可以将stdout重定向到中或其他某个日志记录工具。对我来说,“sip”无法识别,但我可以通过使用“setup(windows=['fileName.py'])生成exe并使其工作。此解决方案对我不适用。这是我的代码
设置(选项={'py2exe':{'bundle_files':1',compressed':True}},控制台=[“main.pyw”],zipfile=None,)