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 .
Para cubrir algunas características como trabajadores paralelos o parámetros de entrada, puede instalar jupyter-runner
pip install jupyter-runner
Léame en github: https://github.com/omar-masmoudi/jupyter-runner
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.