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

标签 python python-3.x tkinter error-handling pyinstaller

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

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

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

我怎样才能拥有一个“包罗万象”的功能,以捕获将发送到控制台的任何输出,或者捕获或记录任何错误?我知道有很多方法可以在整个过程中使用额外的代码来实现此目的,但是将代码添加到应用程序的每个功能中似乎对我要实现的目标来说负担太大。

最佳答案

Linux系统有一个解决方案:

strace -p <PID_OF_PROCESS> -s9999 -e write

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

看到:
man strace

有关详细信息。

关于python - 如何从Python Tkinter应用程序捕获到控制台的任何输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49037669/

相关文章:

python - python 上的 MySQL 查询中的转义引号

python - Tkinter 按键触发事件

python - 如何获取 Canvas 图像来检测并传送到另一个 Canvas 图像?

python - 为什么 pandas 会丢弃唯一的行?

python - 无法导入名称 'views' 、.Python、Django

python - 将 Sublime 3 的 Python Build 更改为使用 py 而不是 python 作为命令

javascript - 从 Javascript 确定 Django 用户 ID

perl - 每当文本小部件中的光标位置发生变化时自动调用子程序

python - 在 Python 3.2 中,如何使用 while 循环打印字符串,其中字母之间有间隔(在同一行)?

python - opencv类型错误: 'int' object is not iterable