nteract/papermill

kernel_name argument of papermill.execute seems to have no effect.

Open

#856 ouverte le 17 déc. 2025

Voir sur GitHub
 (0 commentaires) (0 réactions) (0 assignés)Python (402 forks)batch import
bughelp wanted

Métriques du dépôt

Stars
 (5 381 stars)
Métriques de merge PR
 (Aucune PR mergée en 30 j)

Description

🐛 Bug

The kernel_name argument of papermill.execute seems to have no effect. The executing notebook uses the Jupyter kernel specified in the original notebook's metatdata. Using papermill v2.6.0. Or at least the display_name in the metadata is unchanged, this is what jupyter hub uses to display the name of the kernal being used.

Something along the lines of this function should fix this:

import nbformat as nbf

def change_notebook_kernel(input_path, output_path, kernel):
    """
    Change a Jupyter Notebook's kernel.

    Parameters
    ----------
    input_path: str
        Path to the input notebook.
    output_path: str
        Path to the output notebook.
    kernel: str
        Name of the kernel_name to change to.
    """
    notebook = nbf.read(input_path, as_version=4)
    notebook['metadata']['kernelspec']['name'] = kernel
    notebook['metadata']['kernelspec']['display_name'] = kernel
    nbf.write(notebook, output_path)

Guide contributeur