使用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 JAXB封送字符串,具有xml值,且不转义该值   java ModelMapper转换器不工作   java像HH000412或HCANN000001这样的前缀是什么意思?   验证日期输入修复java。lang.numberformatexception错误   当表具有外键时,java Telosys代码生成失败   如何使所有派生类一起只能实例化一个实例的单例抽象基类?(爪哇)   java如何在非静态服务类中使用广播接收器   java nutch爬虫相对URL问题   使用Jboss DMR下载/保存java附件   Rest模板:无法提取响应:当我们得到xml响应时,没有找到适合响应类型的HttpMessageConverter,没有绑定到JAVA对象   java如何编写可扩展窗格/面板/卡的代码   java是在ITreeViewerListener的treeExpanded()之前调用ContentProvider的getChildren()吗?   java将JComponent添加到小程序窗格   java混淆:使用简单逻辑的Flames程序