Рубрики
Без рубрики

Три способа автоматизации сценариев Python через Notebook Jupyter

Параметры, чтобы запланировать сценарий Python для автоматического запуска. Tagged с помощью Python, Jupyter Notebook, автоматизации, производительности.

Независимо от того, отправляете ли вы отчеты, выполняете долгие задачи или обновляете панель инструментов, у вас, вероятно, есть дюжина или около того ноутбуков, которые необходимо регулярно запускать. Вы можете установить напоминания, убедитесь, что у всех в команде есть сценарий, который нужно работать при необходимости (например, вы в отпуске) и убедитесь, что вы вошли в систему перед боссом, чтобы вы могли обновить информационные панели, но в какой -то момент стоимость Ваше время подтолкнет вас к автоматизации. Мы собираемся охватить три способа сделать это:

  1. Локальная настройка процесса для автоматического запуска сценария Python в фоновом режиме
  2. Используйте Seekwell, чтобы автоматически запускать ноутбуки и удаленно
  3. Настройка собственного сервера для удаленного запуска ноутбука

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”