如何在 Jupyter Notebook 中显示实时进程命令行?

How to show real time process command line in Jupyter Notebook?

例如,我将此代码保存为 test.py

import time
for i in range(0, 10):
    print(i)
    time.sleep(3.0)

当我尝试 运行 在 ipynb 上使用 !python test.py 它已处理但未在输出中实时显示。 我希望它像显示 0,然后暂停 3 秒,然后在输出中显示 1 .... 等等。

您可能想尝试在笔记本的单元格中使用 %run test.py%run test.py -i

(参见 here。)

! 将你放在它后面的内容发送到一个单独的临时 shell 实例。该实例完全运行您作为进程发送的内容,然后在完成后(取决于系统)将输出带回笔记本并自行关闭并清理所有内容。

实际上,它处理此类事情的方式在不同的系统上可能会有所不同。例如,在从 here by clicking launch binder (select 'Help' > 'Launch Classic Notebook' if you prefer the other interface although the interface choice makes no difference as both behaved same with your code there), I see !python test.py works as you seek. However, in general it is best not run scripts in notebooks that way as the magic %run command 启动的会话中最好使用,因为它更 full-featured 并且使用您的笔记本所在的环境。因此,除了可能直到最后才返回输出之外,!python 不一定会使用相同的环境。