如何通过环境变量设置nbconvert调用pandoc的输出级别为ERROR?
解决pandoc废弃参数警告的几种方法
因为pandoc本身没有通过环境变量调整日志冗余度的选项,你可以试试下面几个实用方案:
方案1:直接过滤警告输出
执行nbconvert命令时,把标准错误输出里的特定警告过滤掉。
- Linux/macOS下命令:
jupyter nbconvert --to asciidoc your_notebook.ipynb 2>&1 | grep -v "WARNING: --atx-headers has been deprecated" - Windows下用PowerShell:
或者CMD环境用:jupyter nbconvert --to asciidoc your_notebook.ipynb 2>&1 | Select-String -Pattern "WARNING: --atx-headers has been deprecated" -NotMatchjupyter nbconvert --to asciidoc your_notebook.ipynb 2>&1 | findstr /v "WARNING: --atx-headers has been deprecated"
方案2:修改nbconvert配置替换废弃参数
直接让nbconvert调用pandoc时用新参数,从根源解决警告:
- 生成nbconvert配置文件(若还未生成):
jupyter nbconvert --generate-config - 打开默认路径下的配置文件
~/.jupyter/jupyter_nbconvert_config.py,找到AsciiDocExporter相关配置,添加或修改一行:
保存后再执行nbconvert,就会使用新参数,不会再触发废弃警告。c.AsciiDocExporter.pandoc_args = ['--markdown-headings=atx']
方案3:包装pandoc命令自动过滤警告
写一个简单脚本替换系统的pandoc调用,自动过滤指定警告:
- 创建名为
pandoc的脚本,替换真实pandoc路径(比如/usr/bin/pandoc):#!/bin/bash exec /usr/bin/pandoc "$@" 2>&1 | grep -v "WARNING: --atx-headers has been deprecated" >&2 - 给脚本添加执行权限:
chmod +x pandoc - 将脚本所在目录加到PATH最前端:
之后执行nbconvert时,会自动使用这个包装后的pandoc,过滤掉目标警告。export PATH="/path/to/your/script/dir:$PATH"
内容的提问来源于stack exchange,提问作者mirekphd
相关产品推荐
相关产品推荐

