IPyNB:Print和日志记录模块的顺序不正确

问题描述

我在Jupyter Notebook上使用Python 3.7,并且我的代码在各个位置都有一些print()和logging.info()调用。在Jupyter Notebook中运行代码时,语句以错误的顺序显示,从而使调试变得相当困难。

示例代码

import logging
from importlib import reload
reload(logging)  # https://stackoverflow.com/a/21475297
logging.basicConfig(level=logging.DEBUG)

print('AAA')
logging.info('111')
print('BBB')
logging.info('222')

通过标准python运行时正确的输出

AAA
INFO:root:111
BBB
INFO:root:222

在Jupyter笔记本中运行时输出错误

INFO:root:111
INFO:root:222
AAA
BBB

我认为这与刷新标准输出缓冲区有关,但是我不知道Jupyter如何处理这些事情。使用print('xxx',flush = True)的结果相反:

AAA
BBB
INFO:root:111
INFO:root:222

如何确定打印顺序正确?

谢谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)