Как избежать ошибки Keyerror с именем «kernelspec» в Papermill?Python

Программы на Python
Ответить
Anonymous
 Как избежать ошибки Keyerror с именем «kernelspec» в Papermill?

Сообщение Anonymous »

Я запускаю команду бумажной фабрики из airflow (докера). Сценарий хранится на S3, и я запускаю его с помощью клиента Python бумажной фабрики. Получается совершенно непонятная ошибка:

Код: Выделить всё

Traceback (most recent call last):
File "/usr/local/lib/python3.5/dist-packages/ipython_genutils/ipstruct.py", line 132, in __getattr__
result = self[key]
KeyError: 'kernelspec'
Я пытался просмотреть документ, но тщетно.

Код, который я использую, предназначен для запуска Команда бумажной фабрики:

Код: Выделить всё

import time
from datetime import datetime, timedelta

from airflow import DAG
from airflow.operators.python_operator import PythonOperator
from mypackage.datastore import db
from mypackage.workflow.transform.jupyter_notebook import run_jupyter_notebook

dag_id = "jupyter-test-dag"
default_args = {
'owner': "aviral",
'depends_on_past': False,
'start_date': "2019-02-28T00:00:00",
'email': "aviral@some_org.com",
'email_on_failure': False,
'email_on_retry': False,
'retries': 0,
'retry_delay': timedelta(minutes=5),
'provide_context': True
}

dag = DAG(
dag_id,
catchup=False,
default_args=default_args,
schedule_interval=None,
max_active_runs=1
)

def print_context(ds, **kwargs):
print(kwargs)
print(ds)
return 'Whatever you return gets printed in the logs'

def run_python_jupyter(**kwargs):
run_jupyter_notebook(
script_location=kwargs["script_location"]
)

create_job_task = PythonOperator(
task_id="create_job",
python_callable=run_python_jupyter,
dag=dag,
op_kwargs={
"script_location": "s3://some_bucket/python3_file_write.ipynb"
}
)

globals()[dag_id] = dag

Функция run_jupyter_notebook:

Код: Выделить всё

def run_jupyter_notebook(**kwargs):
"""Runs Jupyter notebook"""
script_location = kwargs.get('script_location', '')
if not script_location:
raise ValueError(
"Script location was not provided."
)
pm.execute_notebook(script_location, script_location.split(
'.ipynb')[0] + "_output" + ".ipynb")
Я ожидаю, что код запустится без каких-либо ошибок, поскольку я запускал его и локально (не используя пути s3, используя пути локальной файловой системы)

Подробнее здесь: https://stackoverflow.com/questions/560 ... -papermill
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»