我用Gooey
构建了一个Py3.xgui应用程序。该应用程序功能齐全,除了接收缓冲输出的内置控制台/终端外,GUI按预期工作。在
如果我用pythonw -u script.py
运行.py
文件,这不是问题,但是我现在尝试将该工具捆绑/冻结到.app
。绑定过程已经成功,但在应用程序打开时仍然存在缓冲输出的问题。在
到目前为止,我发现了以下几点,但我所做的一切都没有奏效:
有几个线程建议使用flush=True
和print()
来编写每个调用,但是logging
(这是我在这里感兴趣的)没有这样的补充标志。因此,该线程中的各种monkey补丁解决方案对我也没有用处(但有一个警告,我不知道logging
的内部结构,所以也许有一个类似的方法可以应用到一个记录器上,它可以工作吗?Gooey
本身,而且打包过程输出的日志信息比我自己的调用要多得多,而且这仍然是缓冲的,所以看起来“全局解除缓冲”似乎是真正需要的。
This thread提供了许多方法。实际上,重新打开缓冲区大小为0的sys.stdout
就是suggested approach,但是在第一个线程中,关于它是否仍然可以在pip3116下在python3上工作存在着矛盾的意见,当然在我的手上,使用
nonbuffered_stdout = os.fdopen(sys.stdout.fileno(), 'w', 0)
sys.stdout = nonbuffered_stdout
似乎完全打破了.app
。
尝试将一个-u
或PYTHONUNBUFFERED=1
注入shebangs中,无论是否使用-S
,似乎也不起作用(在本例中,在MacOS上)。
python3 -u
显式调用时,Python3.x中如何实现无缓冲的输出?我仍在尝试组装一个MWE,但是使用gooey
与打包过程相结合使这有点困难。在
目前没有回答
相关问题 更多 >
编程相关推荐