Differences between revisions 8 and 9
Revision 8 as of 2006-08-15 14:56:27
Size: 1206
Revision 9 as of 2008-07-08 11:27:43
Size: 1206
Editor: localhost
Comment: converted to 1.6 markup
Deletions are marked like this. Additions are marked like this.
Line 20: Line 20:
if sys.frozen == "windows_exe" :[[BR]]
    class Blackhole(object):[[BR]]
        softspace = 0[[BR]]
        def write(self, text):[[BR]]
    sys.stdout = Blackhole()[[BR]]
    sys.stderr = Blackhole()[[BR]]
    del Blackhole[[BR]]
del sys[[BR]]
if sys.frozen == "windows_exe" :<<BR>>
    class Blackhole(object):<<BR>>
        softspace = 0<<BR>>
        def write(self, text):<<BR>>
    sys.stdout = Blackhole()<<BR>>
    sys.stderr = Blackhole()<<BR>>
    del Blackhole<<BR>>
del sys<<BR>>

A GTK application I made has unimported errors. I used the option 'windows', but the console window gets opened when getting an error. And maybe a tip, when closing the program it should be optional whether or not it warns for errors.

Mark Baas <m.baas _at_ zarb.org>

You can always redirect where the errors go with the sys module. sys.stderr = StringIO.StringIO() will redirect error messages to a string in your program that no one will ever see.

A better option is a log file, then they can see the errors if the want to but don't have to sys.stderr = open("logfile.txt","w")

if you want to redirect print statements as well, point sys.stdout to some other file

To avoid runtime errors on closing the windows executable, it may help to suppress all output and modify py2exe/boot_common.py to
if sys.frozen == "windows_exe" :

  • class Blackhole(object):

    • softspace = 0
      def write(self, text):

      • pass

    sys.stdout = Blackhole()
    sys.stderr = Blackhole()
    del Blackhole

del sys

[Added by timo (at) eda-solutions.de]

See StderrLog for more info on this subject.

GuiApps (last edited 2008-07-08 11:27:43 by localhost)