关于python:从命令行运行Jupyter Notebook(.ipynb),好像它是一个.py文件

Run Jupyter Notebook (.ipynb) from command line as if it were a .py file

我在我的本地机器上创作一个Jupyter笔记本,最终将在远程服务器(运行Ubuntu)上运行。每次我需要进行更改时,我必须将笔记本导出为.py文件,然后从服务器的命令行调用它。

我希望能够在运行中运行它,调用一个获取当前.ipynb文件的命令并在命令行上执行它,就好像它是.py一样,显示所有打印语句并输出你' d期望.py运行。我认为nbconverter可能会使用类似以下命令的方法来完成这个操作:

1
jupyter nbconvert --to script --execute nbconvert_test.ipynb

事实上,这并没有像我想的那样将.ipynb转换为在命令行上执行的.py文件,而是在同一目录中创建一个名为nbconvert_test.py的新文件,在单独的命令中运行。我真的很想在每次进行一次小改动时阻止创建该文件,并且在命令行上跳过额外的步骤。

任何帮助表示赞赏!


您可以将jupyter nbconvert发送到搁浅的输出并将其发送到python。

1
jupyter nbconvert --to script --execute --stdout test_nbconvert.ipynb | python


解决方法是一个包含三个部分的小型shell脚本

  • 转换笔记本
  • 执行创建的脚本
  • 删除脚本
  • 创建一个文件runnb.sh

    1
    2
    3
    4
    5
    6
    7
    #!/bin/sh
    # First argument is the notebook you would like to run
    notebook=$1
    scriptname="$(basename $notebook .ipynb)".py

    jupyter nbconvert --to script --execute ${notebook} && python ${scriptname}
    rm ${scriptname}

    使用如下:

    1
    $ ./runnb.sh nbconvert_test.ipynb

    编辑:
    根据这个答案,这个命令应该做得很好jupyter nbconvert --execute test_nbconvert.ipynb(只是抛出--to标志