在另一个内部运行一个Jupyter笔记本时如何抑制某些输出

时间:2019-07-16 00:31:41

标签: python jupyter

因此,我有一台Jupyter笔记本,通过%run魔术正在另一台笔记本中运行。前者中的某些单元会产生我不希望出现在后者中的输出。这些文档似乎表明我可以使用-n选项(ie, %run -n second_notebook.ipynb)并将我不想运行的第一个笔记本中的代码放在后面的第二个笔记本中if __name__ == "__main__"条件。我已经尝试过了,但是并没有达到我期望的方式。也就是说,它似乎什么也没做,只是像往常一样%run塞住笔记本。我重置了两个笔记本的内核,甚至尝试启动新的Jupyter Lab会话,因为有时%turnOffTurnOn是​​所有功能中最强大的功能。

我想我首先想知道我是否只是在误解事情。如果%run -n foo.ipynb位于if __name__ == "__main__"块中,是否应该禁止foo.ipynb中的代码?如果没有,那我该如何实现呢?如果应该那样工作,那么为什么它对我不起作用呢?

1 个答案:

答案 0 :(得分:0)

解决此问题的一种方法是避免完全使用运行魔术。而是运行

import sys

sys.append.path('path_to_foo/foo.py')
import foo

似乎可以解决问题。