Notebooker 开源项目教程
项目介绍
Notebooker 是一个可以将 Jupyter Notebook 生产化和调度的 Web 应用程序。它允许用户以交互方式编写 Jupyter Notebook,并将其转换为可参数化的报告。Notebooker 的核心功能包括:
- 将 Jupyter Notebook 转换为可执行的报告模板。
- 通过 Web 界面或命令行执行这些模板。
- 将执行结果存储在 MongoDB 中,并通过 Web 界面进行搜索和查看。
Notebooker 自 2018 年底以来一直在 Man Group 积极维护,其原始概念由 Jon Bannister 构建。
项目快速启动
要快速启动 Notebooker,可以使用 Docker Compose。以下是具体步骤:
-
克隆项目仓库:
git clone https://github.com/man-group/notebooker.git
-
进入项目目录并启动 Docker Compose:
cd notebooker/docker docker-compose up
这将启动 Notebooker 并在 http://localhost:8080
上暴露 Web 界面。
应用案例和最佳实践
应用案例
假设你需要分析多个股票在过去 N 天的价格变动。使用 Notebooker,你可以编写一个包含“stock”和“N”参数的 Jupyter Notebook,并将其转换为 Notebook 模板。通过执行这个模板,你可以为不同的股票和时间段生成报告。
最佳实践
- 参数化:在 Jupyter Notebook 中使用参数,以便通过不同的输入生成多个报告。
- 版本控制:将 Notebook 模板存储在 Git 仓库中,以便进行版本控制和协作。
- 自动化:使用 Notebooker 的命令行接口定期执行报告生成任务。
典型生态项目
Notebooker 依赖于以下几个关键的开源项目:
- Jupytext:用于将 Jupyter Notebook 转换为 Python 脚本。
- Papermill:用于参数化和执行 Jupyter Notebook。
- nbconvert:用于将 Jupyter Notebook 转换为其他格式,如 HTML 或 PDF。
- Fomantic-UI:用于构建 Notebooker 的 Web 界面。
这些项目与 Notebooker 一起构成了一个强大的生态系统,支持从 Jupyter Notebook 到生产级报告的整个流程。