通过Pygments重定向python回溯

2024-04-29 06:48:28 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

通过pygmetize重定向stdout和{}。pygmetize文档说,如果没有提供文件,它将从stdin读取,“如果没有提供输入文件,则使用stdin;如果没有给出-o,则使用stdout。”

然而,当我像这样重定向时,没有输出——错误、日志语句或其他任何东西——输出到我的终端。在

当我运行我的命令而不把它的输出传送到pygmetize中时,即python run.py 2>&1我得到以下输出:

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

有什么建议吗?在


Tags: 文件run文档py命令info应用程序pygments
1条回答
网友
1楼 · 发布于 2024-04-29 06:48:28

当从stdin读取时,pygmentizereads the whole input stream并且只有在输入流关闭的情况下才输出所有内容,因此只有在第一个进程结束后,才能通过pygments获得任何输出。在

恐怕你对此无能为力。如果你想格式化一个连续的流,你只能试着在pygments上写你自己的包装器,它会把输入流分块读出来,然后把它给pygments。在

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

相关问题 更多 >