1
votes

Comment spécifier le noyau lors de l'exécution d'un notebook Jupyter à l'aide du client Python de Papermill?

J'exécute un script de notebook jupyter en utilisant le client python de Papermill. Lors de l'exécution, je souhaite spécifier le noyau. Cependant, le script fonctionnait dans le même noyau que mon shell python actif (à travers lequel j'ai fait l'appel API à papermill afin d'exécuter le script du notebook).

J'ai essayé de chercher dans la documentation ( https://papermill.readthedocs.io/en/latest/usage-execute.html#execute-via-the-python-api ) mais en vain.

import papermill as pm
pm.execute_notebook( 'dfnjofnei.ipynb', 'dfnjofnei_output.ipynb' )


0 commentaires

3 Réponses :


0
votes

Utilisez pipenv pour gérer les environnements virtuels et créer des noyaux autour des outils que vous utilisez.

Assurez-vous d'abord que pipenv est installé. Ensuite, vous pouvez facilement créer un nouveau noyau pipenv et ipython avec

# create a python 3 virtualenv and add the kernel to ipython
$ mkdir MyProject
$ cd MyProject
$ pipenv_jupyter.sh -3
# remove an unwanted kernel
$ pipenv_jupyter.sh -c

Une fois que vous avez créé ipykernel, vous devez l'installer:

$ pipenv install module_name

Ajoutez tous les modules pip supplémentaires que vous souhaitez avoir au venv:

$ pipenv run python -m ipykernel install --user --name=My_Project_Name"

Lancez Jupyter Notebook et choisissez votre noyau dans le menu déroulant.

Vous pouvez maintenant ajouter des modules à volonté et ils seront disponibles sans redémarrer le noyau.

Pour simplifier ce processus, j'ai créé un petit outil qui crée automatiquement l'environnement pipenv à partir de la ligne de commande. Cela permet également de supprimer les noyaux inutilisés. Vous pouvez le trouver ici avec un script pour supprimer tout notebook %magic et convertir ipynotebooks en scripts python exécutables.

Usage:

$ pipenv [--two|--three] install ipykernel


1 commentaires

Cela ne répond pas à la question initiale ... l'OP est évidemment conscient des environnements virtuels mais aimerait savoir comment les utiliser via Papermill.



4
votes

Je ne sais pas si c'est trop tard maintenant, mais vous pouvez vérifier ceci:

papermill {input_path} {output_path} -k {kernel_name}


0 commentaires

0
votes

La documentation n'est pas exhaustive. Vous pouvez trouver d'autres arguments configurables ici: https://github.com/nteract/papermill/blob/main/papermill/execute.py

Pour spécifier le noyau lors de l'appel de l'API, kernel_name simplement kernel_name , par exemple:

import papermill as pm
pm.execute_notebook(
    'input.ipynb',
    kernel_name='python3'
)

(J'ai essayé ça et ça a marché)


0 commentaires