我在python jupyter笔记本中有一个代码,但我需要每天运行这个,所以我想知道是否有一种设置方法,我真的很感激
答案 0 :(得分:15)
<强>更新强>
最近我遇到了papermill,用于执行和参数化笔记本电脑。
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笔记本,这个嵌入到cronjob中会做你想要的。
Ubuntu上的示例设置:
使用以下内容创建 yourscript.sh :
/opt/anaconda/envs/yourenv/bin/jupyter nbconvert \
--execute \
--to notebook /path/to/yournotebook.ipynb \
--output /path/to/yournotebook-output.ipynb
除了笔记本外,您还有更多选择。我喜欢这个选项,因为你之后有一个完全可执行的“log”-File。
我建议使用虚拟环境来运行您的笔记本,以避免将来的更新弄乱您的脚本。不要忘记将nbconvert安装到环境中。
现在创建一个每天运行的cronjob,例如在上午5:10,在您的终端中输入crontab -e
并添加以下行:
10 5 * * * /path/to/yourscript.sh
答案 1 :(得分:2)
使用Papermill方便地执行带有参数的Jupyter笔记本。我还发现使用Jupytext作为Markdown文件或Python脚本共享/版本控制笔记本非常方便。然后,我用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
要详细了解上述内容,包括如何指定笔记本将在其中运行的Python环境以及如何在笔记本上使用持续集成,请参阅我的文章 Jupyter Notebooks的自动报告(使用Jupytext和Papermill),您可以在Medium,GitHub或Binder上阅读。如果要交互式测试本文中命令的结果,请使用Binder链接。
答案 2 :(得分:1)
尝试SeekWell Chrome Extension。它使您可以从Jupyter Notebooks安排笔记本电脑每周,每天,每小时或每5分钟运行一次。如果愿意,还可以将DataFrames直接发送到Sheets或Slack。
这里是demo video,上面的Chrome Web Store链接中也有更多信息。
**披露:我是SeekWell的联合创始人
答案 3 :(得分:1)
正如其他人所提到的,造纸厂是必经之路。 Papermill只是nbconvert
,具有一些额外功能。
如果要处理多个相互依赖的笔记本的工作流程,则可以尝试Airflow's integration with papermill。如果您正在寻找不需要调度程序运行的更简单的东西,可以尝试ploomber,它也与papermill集成在一起(免责声明:我是作者)。
答案 4 :(得分:0)
如果要获得更高的质量,最好与气流结合。 我将它们打包在docker映像https://github.com/michaelchanwahyan/datalab中。
这是通过修改开源软件包nbparameterize并集成传递的参数(例如execution_date)来完成的。 图形可以即时生成 。输出可以更新并保存在笔记本内部。
执行时
此外,它还安装并配置了常用工具,例如spark,keras,tensorflow等。
答案 5 :(得分:0)
您可以在cronjob中添加jupyter笔记本
0 * * * * /home/ec2-user/anaconda3/bin/python /home/ec2-user/anaconda3/bin/jupyter-notebook
您必须用anaconda安装位置替换/ home / ec2-user / anaconda3,并且可以根据您在cron中的要求安排时间
答案 6 :(得分:0)
您可以下载.py形式的notebook,然后创建一个批处理文件来执行.py脚本。然后在任务调度器中调度批处理文件
答案 7 :(得分:0)
手动运行您的笔记本:
jupyter nbconvert --to notebook --execute /home/username/scripts/mynotebook.ipynb
创建一个简单的批处理文件并将上面的命令添加到文件中:
/home/username/scripts/mynotebook.sh
将上面的命令粘贴到文件中
使文件可执行
chmod +x /home/username/scripts/mynotebook.sh
要安排您的笔记本使用 cron 或气流,取决于您的需求与复杂性。如果你想使用 cron,你可以简单地执行 crontab -e 并添加一个条目
00 11 * * * /home/username/scripts/mynotebook.sh
答案 8 :(得分:-1)
您要使用EAP中当前使用的Google AI Platform Notebooks计划程序服务。