如何自动每天运行python jupyter笔记本

Bet*_*elo 11 python scheduled-tasks jupyter-notebook papermill

我在python jupyter笔记本中有一个代码,但我需要每天运行这个,所以我想知道是否有办法设置这个,我真的很感激它

Zep*_*hro 21


最近更新我遇到了papermill,用于执行和参数化笔记本电脑.

https://github.com/nteract/papermill

papermill local/input.ipynb s3://bkt/output.ipynb -p alpha 0.6 -p l1_ratio 0.1
Run Code Online (Sandbox Code Playgroud)

这似乎比nbconvert好,因为你可以使用参数.您仍然必须使用调度程序触发此命令.下面是在Ubuntu上使用cron的示例.


老答案

nbconvert --execute
Run Code Online (Sandbox Code Playgroud)

可以执行一个jupyter笔记本,这个嵌入到cronjob中会做你想要的.

Ubuntu上的示例设置:

使用以下内容创建yourscript.sh:

/opt/anaconda/envs/yourenv/bin/jupyter nbconvert \
                      --execute \
                      --to notebook /path/to/yournotebook.ipynb \
                      --output /path/to/yournotebook-output.ipynb
Run Code Online (Sandbox Code Playgroud)

你有更多的选择,除了 - 到笔记本.我喜欢这个选项,因为你之后有一个完全可执行的"log"-File.

我建议使用虚拟环境来运行您的笔记本,以避免将来的更新弄乱您的脚本.不要忘记将nbconvert安装到环境中.

现在创建一个cronjob,每天运行,例如在上午5:10,通过键入crontab -e您的终端并添加以下行:

10 5 * * * /path/to/yourscript.sh
Run Code Online (Sandbox Code Playgroud)


小智 5

尝试SeekWell Chrome 扩展程序。它允许您直接从 Jupyter Notebooks 安排笔记本每周、每天、每小时或每 5 分钟运行一次。如果您愿意,您还可以将 DataFrame 直接发送到 Sheets 或 Slack。

这是一个演示视频,上面的 Chrome 应用商店链接中还有更多信息。

**披露:我是 SeekWell 联合创始人


Ica*_*rus 4

如果想要更高的品质,最好与气流结合。我将它们打包在 Docker 镜像中,https://github.com/michaelchanwahyan/datalab

它是通过修改开源包 nbparameterize 并集成传递参数(例如execution_date)来完成的。可以即时生成图表。输出可以更新并保存在笔记本内。

当它被执行时

  • 笔记本将被读取并注入参数
  • 笔记本被执行,输出将覆盖原来的路径

此外还安装配置了spark、keras、tensorflow等常用工具。