在命令行上使用带有jupyter nbconvert v5.3.1的自定义预处理器

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在命令行上使用带有jupyter nbconvert v5.3.1的自定义预处理器相关的知识,希望对你有一定的参考价值。

我正在尝试执行我在命令行上编写的名为RemoveCellsWithNoTags的自定义预处理器。在documentation之后,这是我的尝试命令

jupyter nbconvert --Exporter.preprocessors=["custompreprocessor.RemoveCellsWithNoTags"] --to script mynotebook.ipynb

这给了我以下错误

zsh: no matches found: --Exporter.preprocessors=[custompreprocessor.RemoveCellsWithNoTags]

标准命令工作正常

jupyter nbconvert --to script mynotebook.ipynb

为了完整性,这里是我的custompreprocessor.py文件中的代码。

from nbconvert.preprocessors import Preprocessor

class RemoveCellsWithNoTags(Preprocessor):

    def preprocess(self, notebook, resources):
        notebook.cells = [cell for cell in notebook.cells if 'tags' in cell.metadata]
        return notebook, resources

Update #1 - Workaround using a config file

我已经设法使用配置文件,但这对我来说并不理想,它正在工作。

nb_convert_config.py文件内容

c = get_config()

c.NbConvertApp.notebooks = ['mynotebook.ipynb']
c.NbConvertApp.export_format = 'python'
c.Exporter.preprocessors = ['custompreprocessor.RemoveCellsWithNoTags']

然后命令变为

jupyter nbconvert --config nbconvert_config.py
答案

你可能只需要从你的shell中逃脱[](似乎是zsh):

jupyter nbconvert 
  --Exporter.preprocessors=["custompreprocessor.RemoveCellsWithNoTags"] 
  --to script mynotebook.ipynb

线索在您收到的错误消息中

zsh: no matches found: --Exporter.preprocessors=[custompreprocessor.RemoveCellsWithNoTags]

错误消息来自shell - 而不是jupyter-nbconvert

以上是关于在命令行上使用带有jupyter nbconvert v5.3.1的自定义预处理器的主要内容,如果未能解决你的问题,请参考以下文章

在带有 %var% 的 IF 命令行上出现“(此时意外。”的原因是啥?

使用node.js在命令行上运行DOH

如何从Jupyter中删除以前的版本?

如何在命令行上为机器人框架的日志/输出/报告文件设置用户定义路径

函数内部 sed 命令中的 bash 语法错误,在命令行上工作正常

在数组排序行上单击带有 OnItemClickListener 的任何项目时应用程序崩溃