gpt4 book ai didi

python - 通过 Pygments 重定向 python 回溯

转载 作者:行者123 更新时间:2023-11-28 17:47:17 26 4
gpt4 key购买 nike

我的应用程序是从 run.py 调用的。我已经安装了 Pygments,我想重定向 Python 的输出,以便在发生回溯时,将它们格式化为更易于阅读的格式。

这是我试过的命令,python run.py 2>&1 | pygmentize -l py

通过 pygmentize 重定向 stdoutstderr。 pygmentize 文档说,如果没有提供文件,它将从 stdin 读取,“如果没有提供输入文件,则使用 stdin,如果未提供 -o,则使用 stdout。”

但是,当我这样重定向时,没有任何输出——错误或日志语句或任何其他内容——会输出到我的终端。

当我运行我的命令而不将其输出通过管道传输到 pygmentize 时,即 python run.py 2>&1 我得到这个输出:

INFO:werkzeug: * Running on http://0.0.0.0:5000/
INFO:werkzeug: * Restarting with reloader

有什么建议吗?

最佳答案

pygmentize reads the whole input stream当从 stdin 读取并且仅在输入流关闭时输出所有内容,因此您只会在第一个进程结束后通过 pygments 获得任何输出。

恐怕您对此无能为力。如果你想格式化一个连续的流,你只能尝试在 pygments 周围编写你自己的包装器,它以 block 的形式读取输入流并将其提供给 pygments。

您现在根本看不到任何输出的原因是您可能正在使用 Ctrl+C 来停止 shell 中的进程,但这会杀死两个进程。如果您使用 kill 仅终止服务器进程,那么您应该至少看到上面提到的行通过 pygments。

关于python - 通过 Pygments 重定向 python 回溯,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16306544/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com