Getting rid of console output when freezing Python programs using Pyinstaller

Pyinstaller -F --noconsole yourfilename.pyw

This will create a single .exe file

Pyinstaller --noconsole yourfilename.pyw

Using this you will get the .exe file along with all .dll and other necessary files in a folder.


Just add the --noconsole flag:

$ python pyinstaller.py --noconsole yourprogram.py

You might want to use --onefile as well, which creates a single .exe file instead of a folder.


If you want to hide the console window, here is the documentation: This is how you use the --noconsole option

python pyinstaller.py --noconsole yourscript.py

If you need help using pyinstaller to get to the point where you need to use the --noconsole option here is a simple tutorial for getting there.


This is one of the first things that comes up in a search for this info, so I'd like to add what I found for release 3.2 of pyinstaller. If you've already packaged your script by running

pyinstaller --onefile your_script.py

or similar, you can edit the your_script.spec file to rid yourself of the console.

    exe = EXE(pyz,
          a.scripts,
          a.binaries,
          a.zipfiles,
          a.datas,
          name='main',
          debug=False,
          strip=False,
          upx=True,
          console=True )

Simply change the console value to False. Then run:

pyinstaller your_script.spec

Additionally, if you make changes to your code, run the above command to have them reflected in the your_script.exe. I have found this useful for debugging various other issues.