开发者

Hiding console window of Python GUI app with py2exe

开发者 https://www.devze.com 2023-01-08 07:03 出处:网络
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).

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 GU开发者_JAVA百科I to be visible to the user when executed from .exe file.

Is that possible?


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.


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".


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!


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'])
0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号