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

发布于 2024-09-10 00:50:14 字数 281 浏览 7 评论 0原文

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

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

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

这可能吗?

I have a Python program uses Qt (PyQt4 in fact) and when I launch it from its main.py, I get a console window and the GUI window (on Windows, of course).

Then I compile my program with py2exe and main.exe is successfully created. However, if I run main.exe (this is what users of program will do) console window of Python still appears and all my debug text is stdout-ed to that window.

I want to hide cmd line window when my application is running and I want just my GUI to be visible to the user when executed from .exe file.

Is that possible?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

清风无影 2024-09-17 00:50:14

是的,这是可能的。

如果我使用

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

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

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

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

Yep, it is possible.

If I use

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

It creates a console app, however if I use

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

it does not show console on .exe file. But output is dumped on main.exe.log file in the .exe folder. Be careful.

月亮是我掰弯的 2024-09-17 00:50:14

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

I doubt this has an effect on py2exe, but it's related to the question. To run a python GUI on windows without the terminal, use pythonw.exe instead of python.exe. This should happen automatically if you end the filename with ".pyw".

陪你搞怪i 2024-09-17 00:50:14

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

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

pyinstaller -w myscript.py

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

This might not be directly related to your question but i think it is worth trying.

You easily do so Using PyInstaller by using the following code.

pyinstaller -w myscript.py

Just as simple as that and every thing is settled!

我爱人 2024-09-17 00:50:14

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

我的安装文件设置如下:

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

The easiest way I found was to add -c when using the console to create the .exe.
If you type cmd into the file explorer, then type the following: python setup.py py2exe -c

My setup file was set up as shown below:

import distutils.core import setup
import py2exe
setup(windows=['myprogram.py'])
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文