Automatización de la producción de Ipython a PDF -- python campo con pdf campo con jupyter campo con jupyter-notebook camp Relacionados El problema

Automating ipython output to pdf


9
vote

problema

Español

Tengo un pequeño programa que básicamente hace todo tipo de cálculo estadístico e imprime los resultados y los gráficos.

En la actualidad, una forma conveniente de obtener una buena salida PDF de mi programa es ejecutar mi código en Jupyter Ipython Notebook usando Magic Command% MatPlotlib en línea y guardar como PDF haciendo "PDF a través de Latex (.pdf)"

Pero, el problema es que tengo que hacerlo manualmente cada vez que ejecuto el programa. Además, no puedo entregar el programa como ejecutable binario a otras personas, que es mi objetivo final.

¿Hay alguna manera de hacer esto programáticamente? Solo para estar claro, todo lo que quiero es la salida de mi programa en formato PDF, de modo que cuando se ejecuta el ejecutable, la salida es PDF. No quiero que el usuario final cree Ipython Notebook. El usuario final no tendrá acceso al código fuente.

ingrese la descripción de la imagen aquí

Original en ingles

I have a little program that basically does all kinds of statistical calculation and prints out results and charts.

At present, a convenient way to get a nice pdf output of my program is to run my code in Jupyter IPython Notebook using magic command %matplotlib inline and save as pdf by doing "PDF via LaTex(.pdf) "

But, the problem is I have to do it manually every time I run the program. In addition, I cannot deliver the program as binary executable to other people, which is my final goal.

Is there a way to do this programmatically? Just to be clear, all I want is output of my program in pdf format so that when the executable is run, the output is pdf. I don't want the end user to create ipython notebook. The end user will not have access to the source code.

enter image description here

           

Lista de respuestas

10
 
vote

A partir de ahora, no hay una API de lenguaje de programación para convertir cuadernos a PDF. Sin embargo, una utilidad de línea de comandos existe llamada nbconvert . Tiene la misma funcionalidad que los convertidores de formato de la interfaz web. Para convertir a PDF, puede hacer double * pd= (double const *)(data); double d0 = pd[0]; double d1 = pd[1]; 8 .

Afortunadamente, Python tiene una mano Módulo de subproceso que le permite generar nuevos procesos, verificar sus entradas y salidas, y obtener sus códigos de retorno. Así que podrías hacer algo así:

  double * pd= (double const *)(data); double d0 = pd[0]; double d1 = pd[1]; 9  

tipo de una manera hacky, pero funcionará. Si está utilizando Windows, es posible que deba agregar el KWARG void *30 a void *1

 

As of now there's not a programming language API to convert notebooks to PDF. However, a command line utility exists called nbconvert. It has the same functionality as the web interface's format converters. To convert to PDF, you can do jupyter nbconvert notebook.ipynb --to pdf.

Luckily, Python has a handy subprocess module which allows you to spawn new processes, check their inputs and outputs, and get their return codes. So you could do something like:

import subprocess subprocess.call("jupyter nbconvert notebook.ipynb --to pdf") 

Kind of a hacky way, but it will work. If you're using Windows, you may need to add the additional kwarg shell=True to subprocess.call()

 
 
   
   
3
 
vote

Si tiene un cuaderno de Ipython, puede hacer un pequeño script Python o Bash que se ejecute primero y luego produce el PDF. Para mí, este guión Bash funciona:

  void *2  

Si desea personalizar la salida con una plantilla, he encontrado que convertir el archivo primero en marcar y luego usar Pandoc para crear un PDF evita algunos problemas:

  void *3  
 

If you have an IPython notebook, you can make a small python or bash script that first executes and then produces the PDF. For me, this bash script works:

jupyter nbconvert --ExecutePreprocessor.timeout=500 --to notebook --execute my_file.ipynb jupyter nbconvert --to pdf my_file.nbconvert.ipynb rm my_file.nbconvert.ipynb 

If you want to customise the output using a template, I have found that converting the file first to markdown and then using pandoc to create a PDF avoids some issues:

jupyter nbconvert --ExecutePreprocessor.timeout=500 --to notebook --execute my_file.ipynb jupyter nbconvert  --to markdown my_file.nbconvert.ipynb  --template="mytemplate.tpl" pandoc --toc --template=mytemplate.tex markdown my_file.nbconvert.ipynb --latex-engine=pdflatex -o final file.pdf 
 
 
0
 
vote

En Windows Si desea convertir recursivamente puede usar la ventana Git-Bash y hacer algo así:

  void *4  
 

On windows if you want to convert recursively you can use git-bash window and do something like this:

$ find /d/we_are_on_disk_d/path_to_ipynb_files/ -name '*.ipynb' | xargs jupyter nbconvert --to [script|pdf] 
 
 

Relacionados problema

0  Necesito ayuda para configurar IntelliSense para Python en VSCODE  ( Need help in configuring intellisense for python in vscode ) 
Necesito ayuda para configurar IntelliSense, Autocompletar y código de código para Python en VSCODE De mi experiencia personal, funciona solo parcialmente. ...

0  El tamaño de WordCloud no aumenta a pesar de una máscara grande  ( Wordcloud size not increasing despite a big mask ) 
He estado intentando esto desde la mañana y rompiendo mi cabeza ... nada parece aumentar el tamaño de la producción en las notas de Jupyter. A pesar de la más...

0  Leer grandes archivos JSON.GZ bloquea el kernel  ( Reading large json gz files crashes kernel ) 
Tengo un conjunto de datos que es de 7GB de datos. Lo estoy leyendo de la siguiente manera: path = direc + '2018-01-*.*' ddf = dd.read_json(path,blocksize=...

0  ¿Cómo reducir el espacio en blanco vertical entre las células portátiles de Ipython?  ( How to reduce the vertical white space between ipython notebook cells ) 
Enseñe una clase usando Ipython / Jupyter Notebook en una computadora púbica. Cuando se proyecta el cuaderno, el texto es demasiado pequeño para que los estud...

2  Camino relativo que no trabaja en Pandas Python en el cuaderno Jupyter  ( Relative path not working in pandas python in jupyter notebook ) 
La estructura de mi carpeta es: datasets/file.csv source/code.ipynb desde dentro quiero acceder al archivo llamado file.csv. import pandas as pd dat...

1  ¿Hay alguna manera de ocultar el código en celdas individuales en Ipython Notebook?  ( Is there a way to hide code in individual cells in ipython notebook ) 
Sé que uno puede ocultar el código en todo el cuaderno: solo examinó esta pregunta y una respuesta magnífica ¿Cómo ocultar el código de celdas en Ipython Not...

0  ¿Cómo puedo usar Djnatientswing Jwebbrowser como el navegador para el portátil Jupyter?  ( How can i use djnativeswing jwebbrowser as the browser for the jupyter notebook ) 
Estoy usando chrriis.dj.natswing.swtimpl.components.jwebbrowser en mi aplicación de swing para abrir la página web de un jupyter-cuaderno. Ahora, mi problema ...

0  Velocidad reducida Icono Ampesado en el cuaderno Jupyter  ( Speed reduced icon appering on jupyter notebook ) 
Esta cosa aparece continuamente cuando empiezo a trabajar en el portátil Jupyter. Cada vez que abro algún archivo en ella, esta cosa aparece después de algún ...

2  Error de Anaconda lanzando Python 3 Jupyter Notebook  ( Anaconda error launching python 3 jupyter notebook ) 
Estoy recibiendo un error cuando intento abrir un portátil Python 3 usando Jupyter después de instalar Anaconda3.5. No hay problema con los cuadernos de Pytho...

1  Cómo vincular a VirutualEnvwrapper con el portátil Jupyter  ( How to link virutualenvwrapper with jupyter notebook ) 
Tengo una configuración VENV / VIRTUALENVWRAPPER en un directorio. Después de empezar a trabajar en el VENV, luego creo un portátil Jupyter dentro del directo...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos