как автоматически запускать python jupyter notebook
У меня есть код в jupyter python, но мне нужно запускать его каждый день, поэтому я хотел бы знать, есть ли способ установить это, я действительно ценю это
Ответы
Ответ 1
Это лучше сочетать с воздушным потоком, если вы хотите иметь более высокое качество. Я упаковал их в образ докеры, https://github.com/michaelchanwahyan/datalab.
Это делается путем изменения пакета open source nbparameterize и интеграции передающих аргументов, таких как execute_date. График может генерироваться "на лету". Выход может обновляться и сохраняться внутри ноутбука.
Когда он выполняется
- ноутбук будет считываться и вводить параметры
- ноутбук выполнен, и выход будет перезаписывать исходный путь
Кроме того, он также установил и сконфигурировал обычные инструменты, такие как искра, кера, тензорный поток и т.д.
Ответ 2
Обновить
недавно я наткнулся на бумажную фабрику, которая предназначена для производства и параметризации ноутбуков.
https://github.com/nteract/papermill
papermill local/input.ipynb s3://bkt/output.ipynb -p alpha 0.6 -p l1_ratio 0.1
Это кажется лучше, чем nbconvert, потому что вы можете использовать параметры. Вы все еще должны запустить эту команду с планировщиком. Ниже приведен пример использования cron в Ubuntu.
Старый ответ
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
У вас есть больше возможностей, кроме ноутбука --to. Мне нравится эта опция, так как у вас есть полностью исполняемый "журнал" -File впоследствии.
Я рекомендую использовать виртуальную среду для запуска вашей записной книжки, чтобы избежать будущих ошибок в вашем скрипте. Не забудьте установить nbconvert в среду.
Теперь создайте cronjob, который запускается каждый день, например, в 5:10 утра, набрав в своем терминале crontab -e
и добавив crontab -e
строку:
10 5 * * * /path/to/yourscript.sh
Ответ 3
Попробуйте расширение SeekWell Chrome. Это позволяет планировать запуск записных книжек еженедельно, ежедневно, ежечасно или каждые 5 минут, прямо с ноутбуков Jupyter. Вы также можете отправить DataFrames непосредственно в Sheets или Slack, если хотите.
Здесь демонстрационное видео, а также дополнительная информация в ссылке Chrome Web Store выше.
** Раскрытие информации: я соучредитель SeekWell
Ответ 4
Выполнение записных книжек Jupyter с параметрами удобно выполнять с помощью Papermill. Я также нахожу удобным совместное использование/управление версией записной книжки в виде файла Markdown или скрипта Python с помощью Jupytext. Затем я конвертирую блокнот в файл HTML с помощью nbconvert
. Обычно мой рабочий процесс выглядит следующим образом:
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 (с использованием Jupytext и Papermill).), которые вы можете прочитать на Medium, GitHub или на Binder. Используйте ссылку Binder, если вы хотите в интерактивном режиме проверить результаты выполнения команд в статье.
Ответ 5
Вы можете добавить блокнот Jupyter в Cronjob
0 * * * * /home/ec2-user/anaconda3/bin/python /home/ec2-user/anaconda3/bin/jupyter-notebook
Вы должны заменить /home/ec2-user/anaconda3 на место установки anaconda, и вы можете запланировать время на основе ваших требований в cron