execnb
安装
可以选择以下方式之一:
pip install execnb
或者如果你使用conda:
conda install -c fastai execnb
(如果你已安装mamba,可以在上面的命令中将conda
替换为mamba
。)
使用方法
使用CaptureShell
来运行Jupyter代码并捕获笔记本输出,无需运行Jupyter服务器(甚至无需安装):
from execnb.nbio import *
from execnb.shell import *
from fastcore.utils import *
s = CaptureShell()
s.run('1+1')
[{'data': {'text/plain': ['2']},
'metadata': {},
'output_type': 'execute_result',
'execution_count': 1}]
要执行笔记本并将其保存(包含填充的输出),请使用CaptureShell.execute
:
try:
s.execute('../tests/clean.ipynb', 'tmp.ipynb')
print(read_nb('tmp.ipynb').cells[1].outputs)
finally: Path('tmp.ipynb').unlink()
[{'name': 'stdout', 'output_type': 'stream', 'text': ['1\n']}, {'data': {'text/plain': ['2']}, 'execution_count': 3, 'metadata': {}, 'output_type': 'execute_result'}]
你还可以使用exec_nb
从命令行执行笔记本:
!exec_nb --help
用法:exec_nb [-h] [--dest DEST] [--exc_stop] [--inject_code INJECT_CODE]
[--inject_path INJECT_PATH] [--inject_idx INJECT_IDX]
src
从`src`执行笔记本并将输出保存到`dest`
位置参数:
src 要读取的笔记本路径
可选参数:
-h, --help 显示此帮助信息并退出
--dest DEST 要写入的笔记本路径(默认:)
--exc_stop 遇到异常时停止?(默认:False)
--inject_code INJECT_CODE 要注入单元格的代码
--inject_path INJECT_PATH 包含要注入单元格的代码的文件路径
--inject_idx INJECT_IDX 要用`inject_code`替换的单元格(默认:0)