栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何使用cx_Freeze冻结双模式(GUI和控制台)应用程序?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何使用cx_Freeze冻结双模式(GUI和控制台)应用程序?

我在此页面上找到了这一点:

无控制台版本的提示:如果尝试打印任何内容,则会出现一个讨厌的错误窗口,因为stdout和stderr不存在(并且cx_freeze
Win32gui.exe存根将显示错误窗口)。当您希望程序能够在GUI模式和命令行模式下运行时,这很痛苦。要安全地禁用控制台输出,请在程序开头执行以下操作:

try:    sys.stdout.write("n")    sys.stdout.flush()except IOError:    class dummyStream:        ''' dummyStream behaves like a stream but does nothing. '''        def __init__(self): pass        def write(self,data): pass        def read(self,data): pass        def flush(self): pass        def close(self): pass    # and now redirect all default streams to this dummyStream:    sys.stdout = dummyStream()    sys.stderr = dummyStream()    sys.stdin = dummyStream()    sys.__stdout__ = dummyStream()    sys.__stderr__ = dummyStream()    sys.__stdin__ = dummyStream()

这样,如果程序在无控制台模式下启动,即使代码包含打印语句,它也将起作用。如果以命令行模式运行,它将照常打印。(这基本上也是我在webGobbler中所做的。)



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/611918.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号