用于运行jupyter notebook

时间:2018-05-18 13:02:21

标签: python jupyter-notebook

我的任务是在.py文件中编写一个python代码(pytest测试),它运行jupyter notebook并声明输出为1.

我有运行笔记本的方法:

def _notebook_run(path):
    args = ["jupyter", "nbconvert", "--execute", path]
    a = subprocess.check_call(args)
    return a

测试:

def test_test():
    a = _notebook_run('./file.ipynb') 
    assert a == 1

当我使用此测试运行它时,它返回0,但是,当我单独运行jupyter notebook时,它会按预期返回1.

为什么输出不同?

我在运行笔记本的方法中犯了一些错误吗?

有人可以帮忙吗?

更新 正如我已经想到的那样,无论在笔记本中执行什么代码,它总是返回0。 有人知道如何让它发挥作用吗?

1 个答案:

答案 0 :(得分:0)

我改变了方法并获得了所需的结果:

def test_file(self):
        result = os.popen("jupyter nbconvert --to script --execute --stdout file.ipynb | python3").read()
        assert result == '1\n'

我的错误原因是使用的方法总是返回0,而不是命令的输出。