问题
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?
回答1:
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.
回答2:
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".
回答3:
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!
来源:https://stackoverflow.com/questions/3275293/hiding-console-window-of-python-gui-app-with-py2exe