使用stdout输出从命令行运行jupyter笔记本的精益实用程序

runnb的Python项目详细描述


runnb-运行笔记本脚本

runnb是从命令行运行jupyter笔记本的脚本。 它是一个^{}api包装器。 有关执行笔记本的注释可以在here中找到。 您可能还想查看jupyter笔记本^{}的格式规范。

当前版本的runnbpython 2, 3jupyter 4.3.0下实现和测试。

安装

要安装pip包,

pip install runnb

或安装最新版本,

pip install --upgrade git+https://github.com/InnovArul/runnb

用法

runnb [options] <path/to/notebook.ipynb>

选项

  • -H—帮助显示帮助消息。
  • -E—允许错误—在单个单元格中允许错误并继续运行。
  • -n—不stdio不将stdio恢复到命令行。(您可能看不到打印的信息。)
  • -A—允许不受信任运行笔记本,即使不受信任。
  • -t--to=<;path/to/notebook.out.ipynb>;将执行的笔记本保存到特定文件。

示例

假设我们有一个笔记本。 只需从命令行运行笔记本:

runnb test.ipynb

如果要运行笔记本,而不是在某个单元格中被可能的错误打断,请传递--allow-error标志:

runnb --allow-error test.ipynb

或者使用快捷方式-e

runnb -e test.ipynb

如果要导出已执行的笔记本,请使用--to

runnb --to=test.out.ipynb test.ipynb

或者使用快捷方式-t

runnb --ttest.out.ipynb test.ipynb

默认情况下,我们通过boardcasting input/output/error流将笔记本的输出恢复到命令行。这是通过添加一小段代码来处理sys.stdinsys.stdoutsys.stderr。一个很小的Tee类用于支持这种行为。确保tee.py在我们的python搜索路径中。如果在某些情况下不希望这样做,我们可以通过传递--no-stdio标志来关闭它:

runnb --no-stdio test.ipynb

或者使用快捷方式-n

runnb -n test.ipynb

但是,这可能意味着我们可能看不到命令行上执行的输出。最好使用--to标志:

runnb --no-stdio --to test.out.ipynb test.ipynb

我们在这里可以尝试的最危险(毫不夸张)的事情是运行一个not trusted笔记本。默认情况下,运行不受信任的笔记本会导致DeprecationWarning停止运行。但是,如果坚持这样做,我们可以传递--allow-not-trusted标志以允许运行。

runnb --allow-not-trusted not_trusted.ipynb

将显示弃用消息,但它不会阻止运行。也可以使用--to保存执行的不受信任笔记本。我们将对不受信任的笔记本的结果进行签名并将其标记为不受信任。但是,最好的做法是不要运行不受信任的笔记本。至少我们应该先检查一下笔记本,如果它是安全的,就签个可信的。确保我们了解正在发生的事情和正在做的事情。

lib用法

runnb(nb_path, allow_errors=False, no_stdio=False, to_file=None)

从当前路径运行笔记本。

参数:

  • nb_pathstr)-笔记本的路径。
  • allow_errorsbool)-是否允许在单个单元格期间出错并继续运行。当设置为True时,如果某个单元格中出现错误,笔记本将继续运行以下单元格。默认值False
  • no_stdiobool)-是否停止将stdio恢复为默认值。当设置为True时,将不会恢复默认stdio(通常是命令行)。结果只能在输出笔记本中找到。默认值False
  • to_filestr)-将执行的笔记本保存到的文件的路径。如果设置为None或空字符串,则不会保存笔记本。默认值None

提高:

  • DeprecationWarning-如果笔记本不受信任并且警告未通过warnings模块过滤,则引发。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Maven无法识别安装在Ubuntu外壳上的$java_HOME jdk   java如何防止可运行程序在其中一个抛出异常时执行   java Listview在按下项时不触发   如何在WindowsPhone8中使用JavaRESTWebService?   java在spring引导下使用多个dispatcher servlet/web上下文   java为什么在删除容器的绝对大小时不绘制GEF子项?   java在hibernate实体中保留DB约束是好的   JavaSpring选择最高优先级bean   ArrayList<Class>java字符串[]   有向加权边图的Java邻接表实现   字母数字字符串的java Tesseract配置:混合2、Z、6和G   如果输入为空,则带有EditText的java警报对话框将关闭   jsp上的java Struts 2动作响应   java获取IndexOutOfBundException Android   scala AWSJAVASDK:解压缩大小必须小于262144000字节