0

我正在尝试使用以下使用 papermill 的代码从 Lambda 运行 Jupyter 笔记本:

import os
import boto3
import subprocess

# to add paths
import sys
# pip install custom package to /tmp/ and add to path
subprocess.call('pip install papermill -t /tmp/ --no-cache-dir'.split(), stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
sys.path.insert(1, '/tmp/')

# papermill to execute notebook
import papermill as pm
def lambda_handler(event, context):
    s3 = boto3.resource('s3')
    print('Here')
    s3.meta.client.download_file("testappend","ForTrigger.ipynb", "/tmp/juptest.ipynb")
    print('Here')
    pm.execute_notebook('/tmp/juptest.ipynb', '/tmp/juptest_output.ipynb', kernel_name='python3')
    print('Here')
    s3_client.upload_file("/tmp/juptest_output.ipynb", "testappend","temp/ForTriggerOutput.ipynb") 

程序抛出此错误:

"errorMessage": "No such kernel named python3",
"errorType": "NoSuchKernel"

我不确定如何查找可用内核的列表。请帮忙。

提前致谢。

4

1 回答 1

1

我看到你的函数中有代码来安装造纸厂。默认情况下,papermill 只会安装 jupyter 和 ipykernel 必要的作为其依赖项的一部分,并且不包括 python3 内核。在你的初始化代码中添加一个显式的 ipykernel 安装。

pip3 install ipykernel

是使用 Papermill 作为无服务器功能运行 Jupyter Notebooks 的另一种方式。您可能会发现这很有用。

于 2021-02-28T05:33:16.893 回答