我有一些Python代码在Jupyter笔记本中,我需要每天自动运行它,所以我想知道是否有设置的方法。非常感谢任何关于此的建议。
我有一些Python代码在Jupyter笔记本中,我需要每天自动运行它,所以我想知道是否有设置的方法。非常感谢任何关于此的建议。
https://github.com/nteract/papermill
papermill local/input.ipynb s3://bkt/output.ipynb -p alpha 0.6 -p l1_ratio 0.1
这似乎比nbconvert更好,因为您可以使用参数。您仍然需要使用调度程序触发此命令。以下是在Ubuntu上使用cron的示例。
旧答案
nbconvert --execute
可以执行jupyter笔记本,将其嵌入到cron作业中即可实现您想要的功能。
在Ubuntu上的示例设置:
创建yourscript.sh并包含以下内容:
/opt/anaconda/envs/yourenv/bin/jupyter nbconvert \
--execute \
--to notebook /path/to/yournotebook.ipynb \
--output /path/to/yournotebook-output.ipynb
除了--to notebook之外,您还有更多选项。我喜欢这个选项,因为您之后可以拥有一个完全可执行的“日志”文件。
我建议使用虚拟环境来运行您的笔记本电脑,以避免未来的更新对您的脚本造成影响。不要忘记将nbconvert安装到环境中。
现在在终端中输入crontab -e
并添加以下行,创建一个cronjob,每天例如在早上5:10运行:
10 5 * * * /path/to/yourscript.sh
试用 SeekWell Chrome浏览器扩展程序。该工具允许您从Jupyter Notebooks中设置笔记本的每周、每日、每小时或每5分钟运行计划。如果需要,您也可以将数据帧(DatFrames)直接发送到Sheets或Slack。
这里有一个演示视频,更多信息请查看上面的Chrome Web Store链接。
**声明: 我是SeekWell的联合创始人。
如果您想获得更高的质量,最好结合airflow使用。我把它们打包成了一个docker镜像,https://github.com/michaelchanwahyan/datalab。
这是通过修改开源包nbparameterize并集成传递参数(如execution_date)来完成的。可以实时生成图形,输出可以在笔记本内更新和保存。
执行时:
此外,还安装和配置了常用工具,如spark,keras,tensorflow等。
您可以在cronjob中添加Jupyter Notebook
0 * * * * /home/ec2-user/anaconda3/bin/python /home/ec2-user/anaconda3/bin/jupyter-notebook
您需要将/home/ec2-user/anaconda3替换为您的Anaconda安装位置,并且可以根据您的需求在cron中安排时间。
使用Papermill方便地执行带参数的Jupyter笔记本。我还发现将笔记本作为Markdown文件或Python脚本共享/版本控制非常方便,可以使用Jupytext完成。然后,我使用nbconvert
将笔记本转换为HTML文件。通常我的工作流程如下:
cat world_facts.md \
| jupytext --from md --to ipynb --set-kernel - \
| papermill -p year 2017 \
| jupyter nbconvert --no-input --stdin --output world_facts_2017_report.html
手动运行笔记本的方法:
jupyter nbconvert --to notebook --execute /home/username/scripts/mynotebook.ipynb
/home/username/scripts/mynotebook.sh
chmod +x /home/username/scripts/mynotebook.sh
00 11 * * * /home/username/scripts/mynotebook.sh
根据文章,有几种方法可以每天执行Jupyter Notebook。
您可以使用操作系统调度程序来执行笔记本电脑。 有两个命令行工具可用于执行笔记本电脑:
两者都很好,我个人使用nbconvert
,但papermill
提供了一些扩展作为笔记本电脑的输入参数或自动导出到云存储。
开源框架 Mercury是一个基于Web的应用程序,它:
Notebooker 是一个开源的网络应用程序,用于安排和共享笔记本。
call C:\Users\...user...\Anaconda3\condabin\conda activate
python -m notebook_file.py
pause
call conda deactivate
您可以以 .py 的形式下载笔记本,然后创建一个批处理文件来执行 .py 脚本。接着在任务计划程序中安排批处理文件的计划。
.py
文件中,然后使用内置计划程序(例如Windows任务计划程序)在需要时运行即可。 - SuperStew