tutorial tablas notebook examples espaƱol ejecutar curso codigo ipython jupyter-notebook

ipython - tablas - jupyter python 3



Ejecutar un cuaderno IPython/Jupyter de forma no interactiva (4)

¿Alguien sabe si es posible ejecutar un cuaderno IPython / Jupyter de forma no interactiva desde la línea de comandos y tener el archivo .ipynb resultante guardado con los resultados de la ejecución. Si todavía no es posible, ¿qué tan difícil sería implementar con phantomJS, algo para encender y apagar el kernel, y algo para encender y apagar el servidor web?

Para ser más específicos, supongamos que ya tengo un cuaderno original.ipynb y quiero volver a ejecutar todas las celdas en ese cuaderno y guardar los resultados en un nuevo cuaderno new.ipynb , pero hago esto con un solo comando en la línea de comando sin requerir interacción en el navegador o para cerrar el núcleo o el servidor web, y suponiendo que ya no se está ejecutando kernel o servidor web.

comando de ejemplo:

$ ipython notebook run original.ipynb --output=new.ipynb


Hasta que esta funcionalidad se convierta en parte del núcleo, armé una pequeña aplicación de línea de comandos que hace justo lo que desea. Se llama runipy y puedes instalarlo con pip install runipy . La fuente y el léame están en github .



Puede ejecutar el servidor iPython-Notebook a través de la línea de comando:

ipython notebook --pylab inline

Esto iniciará el servidor en modo no interactivo y todos los resultados se imprimirán debajo del código. A continuación, puede guardar el .ipynb-File que incluye Code & Output.


Sí, es posible, y fácil, estará (principalmente) en el núcleo de IPython para 2.0, sugeriría que mire esos ejemplos por el momento.

[editar]

$ jupyter nbconvert --to notebook --execute original.ipynb --output=new.ipynb

Ahora está en Jupyter NbConvert. NbConvert viene con un montón de Preprocessor que están deshabilitados de manera predeterminada, dos de ellos ( ClearOutputPreprocessor y ExecutePreprocessor ) son de interés. Puede habilitarlos en su (s) archivo (s) de configuración (local | global) a través de c.<PreprocessorName>.enabled=True (en mayúscula eso es python), o en la línea de comando con --ExecutePreprocessor.enabled=True mantener el resto de el comando como de costumbre.

El --ExecutePreprocessor.enabled=True tiene conveniente --execute alias que se puede utilizar en la versión reciente de NbConvert. Se puede combinar con --inplace si se desea

Por ejemplo, conviértalo en html después de ejecutar el bloc de notas sin cabeza:

$ jupyter nbconvert --to=html --execute RunMe.ipynb

convirtiendo a PDF después de stripping outputs

$ ipython nbconvert --to=pdf --ClearOutputPreprocessor.enabled=True RunMe.ipynb

Esto (por supuesto) sí funciona con kernels que no son python al generar un kernel <insert-your-language-here> , si establece --profile=<your fav profile> . La conversión puede ser muy larga, ya que necesita volver a ejecutar el portátil. Puede hacer una conversión de portátil a portátil con la opción --to=notebook .

Hay varias otras opciones (tiempo de espera, permitir errores, ...) que podrían necesitar establecerse / desconfigurarse según el caso de uso. Consulte la documentación y, por supuesto, jupyter nbconvert --help , --help-all , o nbconvert documentación en línea para obtener más información.