views:

73

answers:

2

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?

+4  A: 

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.

Ahmet Alp Balkan
To suppress output you could redirect stdout as in http://coreygoldberg.blogspot.com/2009/05/python-redirect-or-turn-off-stdout-and.html or to some other logging facility.
ars
A: 

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

robert