如何从Python Tkinter应用程序中捕获任何输出到控制台?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何从Python Tkinter应用程序中捕获任何输出到控制台?相关的知识,希望对你有一定的参考价值。

我有一个大型的多文件,Tkinter应用程序,具有无数的功能,然后与Pyinstaller一起打包为可执行文件。

它包含预期事件的错误处理。但是,它没有任何错误处理意外事件。在将应用程序打包为可执行文件之前运行应用程序时,会向控制台输出意外错误。一旦将其打包为可执行文件,这些错误就会被隐藏(我不希望终端窗口显示给用户)。

这个问题是意外错误不会在任何地方显示,因此我无法捕获和调试它们。

我怎么能有一个“全能”来抓取任何输出到控制台,或捕获或记录任何错误的输出?我知道很多方法可以使用额外的代码来完成这项工作,但是为应用程序的每个功能添加代码对于我正在努力实现的目标来说似乎过于繁琐。

答案

Linux系统有一个解决方案:

strace -p <PID_OF_PROCESS> -s9999 -e write

它将为您提供已在运行的进程的完整输出。

看到:

man strace

详情。

以上是关于如何从Python Tkinter应用程序中捕获任何输出到控制台?的主要内容,如果未能解决你的问题,请参考以下文章

如何将捕获的输入从 tkinter 条目小部件写入 json 文件

如何使用 tkinter 比例修改图像?

如何使用 tkinter 在 python 中嵌入 python 解释器框架?

Python - 如何读取从Tkinter中选择的文件?

如何从Tkinter,Python中的Text小部件中移除焦点

如果 Alamofire 4 中发生任何故障,如何捕获