Независимо от того, отправляете ли вы отчеты, выполняете долгие задачи или обновляете панель инструментов, у вас, вероятно, есть дюжина или около того ноутбуков, которые необходимо регулярно запускать. Вы можете установить напоминания, убедитесь, что у всех в команде есть сценарий, который нужно работать при необходимости (например, вы в отпуске) и убедитесь, что вы вошли в систему перед боссом, чтобы вы могли обновить информационные панели, но в какой -то момент стоимость Ваше время подтолкнет вас к автоматизации. Мы собираемся охватить три способа сделать это:
- Локальная настройка процесса для автоматического запуска сценария Python в фоновом режиме
- Используйте Seekwell, чтобы автоматически запускать ноутбуки и удаленно
- Настройка собственного сервера для удаленного запуска ноутбука
1. Локально (на вашем компьютере)
Плюсы: Простой; Нет дополнительных затрат Минусы: Требуется, чтобы ваш компьютер был бодрствованием и подключен к Интернету 24/7; Занимая много времени для настройки и варьируется в зависимости от вашей операционной системы
А. Используйте nbconvert
Чтобы преобразовать ноутбук в файл .py а Перейдите к каталогу вашей записной книжки через вашу командную строку беременный Запустить Jupyter nbconvert-to-script 'my-notebook.ipynb'
в Приведенная выше команда создаст my-notebook.py дюймовый Запустить Python my-notebook.py
Чтобы проверить это е – Подробнее о nbconvert
может быть найдено здесь
B. Запустите сценарий по расписанию
(Windows) через планировщик задач а Нажмите в меню «Запуск Windows», нажмите «Панель управления»> «Административные инструменты» и нажмите «Планировщик задачи». b. На панели действий нажмите «Создать основное действие задачи» c. Если ваш скрипт расположен по адресу “e: \ testscript.py” Укажите c: \ path \ to \ python \ python.exe “e: \ my script.py” в разделе «Планировщик задач». Если вы не знаете свой путь к Python, проверьте это видео дюймовый Перейдите к разделу триггера и создайте новый триггер с расписанием, которое вы хотите (например, каждый час) Это видео Хорошая работа, пройдя эту часть
(Mac) через LaunchControl ($ 15) а Откройте запуск -контроль и выберите глобальных агентов беременный Найдите свой сценарий. Он должен показывать зеленый, указывая, что он исполняется в В разделе «Пуск календарь» выберите, когда и как часто вы хотите, чтобы сценарий запустил дюймовый Вы можете установить дополнительные правила в соответствии с конфиденциальностью e. Вы можете найти более подробную информацию здесь
2. Используйте Seekwell
Плюсы: Три щелчка автоматизации из записной книжки Jupyter или настольного приложения; Легкий и безопасный доступ к Google Sheets, Slack и SQL DATARAS; Приложение для настольного компьютера включает в себя возможность использовать SQL вместе с Python Минусы: Требуется подписка после бесплатной 14 -дневной пробной версии (49 долларов США/месяц)
Seekwell’s Приложение Chrome Extension и настольное приложение позволяют запланировать ноутбук для работы ежедневно, ежечасно или каждые 5 минут, всего лишь пару кликов. Вы также можете отправлять данные непосредственно в Google Sheets или Slack, не храня клавиши API в простом тексте. Это позволяет легко автоматически обновлять панели панели, используя листы или отправку оповещений в Slack.
Есть два способа автоматизировать с помощью SeekWell-использование расширения Chrome в ноутбуках Юпитера или с использованием настольного приложения.
Расширение Chrome а Добавить расширение Chrome Здесь и создать учетную запись Seekwell здесь . беременный Откройте ноутбук Jupyter в Нажмите на расширение Seekwell Chrome и выберите, как часто вы хотите, чтобы ноутбук запустил дюймовый Нажмите «Сохранить», и все готово! Вы можете управлять всеми своими графиками из своего Панель инструментов Анкет е – (Необязательно) Укажите пункт назначения (например, Google Sheets или Slack) в расширении, используя метаданные ноутбука. Смотрите это видео для получения дополнительной информации.
Seekwell Desktop App а Создайте учетную запись Seekwell Здесь беременный Загрузите настольное приложение как часть потока регистрации. Если вы хотите отправить данные в Slack, обязательно добавьте эту интеграцию. в Если вам нужна помощь в подключении к вашей базе данных, посетите Эта статья Анкет Кодовые ячейки слева по умолчанию до SQL. Чтобы переключить их на тип Python /python
в ячейке и прессе Введите
или возвращаться
дюймовый Напишите свой код в ячейках и укажите пункт назначения для данных. Для Google Sheets перейдите к «простыням» с правой стороны, выберите рабочую книгу и обознатите лист и местоположение ячейки в поле чуть ниже кодовой ячейки, используя нотацию A1 (например, Sheet2! B10). Для Slack укажите канал (например, #Alerts). е – Чтобы создать расписание, нажмите на значок часов в приложении. Выберите, как часто вы хотите, чтобы он запустил, и время суток, если применимо.
Вот как это выглядит в приложении:
фланг Нажмите «Сохранить», и все готово! Вы можете управлять своими графиками из своего Панель инструментов Анкет
3. Удаленно (в облаке)
Плюсы: Только затраты на вычислительную мощность; Не сломается, когда ваш компьютер выключен/вы в отпуске Минусы: Трудоемкое и сложное для настройки; Требует инженерных и разработчиков ресурсов для начала работы и поддержания; Может потребоваться хранение паролей в простом тексте на сервере
Вы можете настроить сценарии для запуска на сервере, чтобы они могли обновить, не вошли ли вы в свою машину/подключены к Интернету. Мы собираемся использовать здесь Google Cloud Platform, но можно сделать что -то подобное на AWS или на вашем облаке. Вот шаги:
а Установите Google Cloud Storage Bucket беременный Загрузите ноутбук в свое ведро в Установите GLCOUD CLI d. В зависимости от вашего предварительного использования Google Cloud вам нужно будет Включить определенные API (например, Google Cloud Storage) е – Запустите следующие команды в вашем терминале (Bash), обязательно замените замену withyourbucket на свое ведро, созданное на шаге A.
# Compute Engine Instance parameters export IMAGE_FAMILY="tf-latest-cu100" export ZONE="us-central1-b" export INSTANCE_NAME="notebook-executor" export INSTANCE_TYPE="n1-standard-8" # Notebook parameters export INPUT_NOTEBOOK_PATH="gs://REPLACEWITHYOURBUCKET/input.ipynb" export OUTPUT_NOTEBOOK_PATH="gs://REPLACEWITHYOURBUCKET/output.ipynb" export STARTUP_SCRIPT="papermill ${INPUT_NOTEBOOK_PATH} ${OUTPUT_NOTEBOOK_PATH}" gcloud compute instances create $INSTANCE_NAME \ --zone=$ZONE \ --image-family=$IMAGE_FAMILY \ --image-project=deeplearning-platform-release \ --maintenance-policy=TERMINATE \ --accelerator='type=nvidia-tesla-t4,count=2' \ --machine-type=$INSTANCE_TYPE \ --boot-disk-size=100GB \ --scopes=https://www.googleapis.com/auth/cloud-platform \ --metadata="install-nvidia-driver=True,startup-script=${STARTUP_SCRIPT}" gcloud --quiet compute instances delete $INSTANCE_NAME --zone $ZONE]
фланг Это должно запустить ноутбук один раз и поместить результаты в свое ведро как выход.
грамм. Затем нам нужен способ запустить этот скрипт для автоматического запуска, что мы можем сделать с App Engine Cron Job час Следуйте инструкциям Здесь Чтобы создать экземпляр двигателя приложения. Это Колба веб -приложение. я. Добавьте конечную точку, чтобы выполнить скрипт Bash выше (обязательно импортируйте подпроцесс), например
def run_notebook(): cmd = 'LONG BASH SCRIPT ABOVE' response = subprocess.run(cmd, stderr=subprocess.PIPE, stdout=subprocess.PIPE, shell = True) return 'Success!'
Дж. Развернуть ваше веб -приложение с приложением GCLOUD развертывать
Немного работа в ногах может поднять вас и вашу команду с постоянным потоком данных, не беспокоясь о нажатии кнопки каждый час. Дайте мне знать в комментариях, если вы столкнетесь с проблемами!
Оригинал: “https://dev.to/fisherthabo/three-ways-to-automate-python-scripts-via-jupyter-notebook-205g”