J'ai un peu de code dans un fichier .ipynb et je l'ai obtenu au point où je n'ai plus vraiment besoin de la fonctionnalité "interactive" d'IPython Notebook. Je voudrais juste l'exécuter directement à partir d'une ligne de commande de terminal Mac.
Fondamentalement, s'il ne s'agissait que d'un fichier .py, je pense pouvoir faire python nom_fichier.py à partir de la ligne de commande. Y a-t-il quelque chose de similaire pour un fichier .ipynb?
À partir de la ligne de commande, vous pouvez convertir un bloc-notes en python avec cette commande:
ipython nbconvert --to python <YourNotebook>.ipynb
Vous devrez peut-être installer le package python mistune :
Sudo pip install mistune
nbconvert vous permet d'exécuter des cahiers de notes avec l'indicateur --execute
:
jupyter nbconvert --execute <notebook>
Si vous voulez exécuter un cahier et en produire un nouveau, vous pouvez ajouter --to notebook
:
jupyter nbconvert --execute --to notebook <notebook>
Ou si vous voulez remplacer le cahier existant par le nouveau résultat:
jupyter nbconvert --execute --to notebook --inplace <notebook>
Comme c'est une très longue commande, vous pouvez utiliser un alias:
alias nbx="jupyter nbconvert --execute --to notebook"
nbx [--inplace] <notebook>
Pour la nouvelle version au lieu de:
ipython nbconvert --to python <YourNotebook>.ipynb
Vous pouvez utiliser jupyter instend of ipython:
jupyter nbconvert --to python <YourNotebook>.ipynb
Mise à jour avec le commentaire cité par l'auteur pour une meilleure visibilité:
Note de l'auteur "Ce projet a démarré avant l'exécution de l'API de Jupyter, qui est désormais le moyen recommandé pour exécuter les blocs-notes à partir de la ligne de commande. Considérez runipy, obsolète et non maintenu." - Sebastian Palma
Installez la bibliothèque runipy qui permet d'exécuter votre code sur un terminal
pip install runipy
Après juste compiler votre code:
runipy <YourNotebookName>.ipynb
Vous pouvez aussi essayer cronjob. Toutes les informations sont ici