J'ai donc essayé de sauvegarder un cahier Jupyter sous le nom de PDF, mais je n'arrive pas à comprendre comment faire cela. La première chose que j'essaye est de télécharger le fichier PDF dans le menu Fichier, mais cela se traduit par:
nbconvert failed: PDF creating failed
la prochaine chose que j'essaie est d'essayer de faire la conversion de l'invite de commande comme ceci
$ ipython nbconvert --to latex --post PDF MyNotebook.ipynb
mais encore une fois, cela entraîne un message d'erreur
ImportError: No module named 'PDF'
et si j'essaye
$ ipython nbconvert --to latex MyNotebook.ipynb
cela se traduit par
IPython.nbconvert.utils.pandoc.PandocMissing: Pandoc wasn't found:
Please check that pandoc is installed
si j'essaie d'installer pandoc (pip install pandoc
), cela me donne
ImportError: No module named 'ConfigParser'
et c’est là que je reste coincé parce que je ne sais tout simplement pas quoi faire. Quelqu'un a une idée de comment réparer ce qui ne va pas?
Si vous êtes sur un Mac et que Homebrew est installé, ouvrez un terminal Shell et installez pandoc en tapant la commande suivante:
brassage installer pandoc
soyez patient, le temps d'installation et de compilation peut prendre un certain temps avec des connexions Internet lentes ou des systèmes plus anciens.
Pour que cela fonctionne, j'ai installé du latex, du latex typique et du pandoc.
Avec Ubuntu:
Sudo apt-get install texlive texlive-latex-extra pandoc
cela prend du temps: plusieurs 100 Mo à télécharger. J'ai lu quelque part que vous pouvez utiliser --no-install-recommends
pour texlive et extra pour réduire au dl.
2015-4-22: Il semble qu'une mise à jour IPython signifie que --to pdf
devrait être utilisé à la place de --to latex --post PDF
. Il existe un connexe numéro de Github .
Pour convertir des blocs-notes en PDF, vous devez d'abord installer nbconvert.
pip install nbconvert
# OR
conda install nbconvert
Ensuite, si vous n’utilisez pas Anaconda ou ne l’avez pas déjà fait, vous devez installer pandoc en suivant les instructions sur leur site Web ou, sous Linux, comme suit:
Sudo apt-get install pandoc
Après cela, vous devez installer XeTex sur votre ordinateur:
Vous pouvez maintenant accéder au dossier qui contient votre ordinateur portable IPython et exécuter la commande suivante:
jupyter nbconvert --to pdf MyNotebook.ipynb
pour plus de référence, s'il vous plaît vérifier ce lien .
Comme le disent les commentaires à la question, vous aurez besoin de pandoc et de latex (TeXShop, par exemple). J'ai installé pandoc avec Homebrew, cela ne m'a pris qu'une seconde. Avec pandoc et TeXShop, je pouvais générer du latex mais pas du pdf (en ligne de commande).
ipython nbconvert --to latex mynotebook.ipynb
En explorant le fichier latex (.tex) avec TeXShop, l'échec était dû à l'absence de feuilles de style et de définitions. Après avoir installé tous ces éléments (adjustbox.sty, adjcalc.sty, trimclip.sty, collectbox.sty, tc-pgf.def, ucs.sty, uni-global.def, utf8x.def, ucsencs.def), il s’est finalement arrêté travail.
Cependant, le résultat est un peu trop funky à mon goût. Il est dommage que l'impression du code HTML à partir de Safari perde la coloration syntaxique. Sinon, ça n'a pas l'air si mal. (Ceci est tout sur OS X).
J'utilise Anaconda-Jupyter Notebook sur système d'exploitation: Ubuntu 16.0 pour la programmation Python.
Ouvrez un terminal et implémentez les commandes suivantes.
$conda install nbconvert
Ou
$pip install nbconvert
Mais je recommanderai d'utiliser conda pip à la place si vous utilisez anaconda
$Sudo apt-get install pandoc
$Sudo apt-get install texlive-xetex
Après l'exécution de ces commandes, fermez les blocs-notes ouverts, actualisez la page d'accueil ou redémarrez le noyau du bloc-notes ouvert. Maintenant, essayez de télécharger le cahier au format pdf :)
Remarque: pour plus de détails, veuillez vous reporter à la documentation officielle:
https://nbconvert.readthedocs.io/en/latest/install.html
Ce script Python dispose d'une interface graphique permettant de sélectionner avec l'Explorateur un bloc-notes Ipython que vous souhaitez convertir en PDF. L'approche avec wkhtmltopdf est la seule approche que j'ai trouvée qui fonctionne bien et fournit des fichiers PDF de haute qualité. Les autres approches décrites ici sont problématiques, la surbrillance syntaxique ne fonctionne pas ou les graphiques sont gâchés.
Vous devrez installer wkhtmltopdf: http://wkhtmltopdf.org/downloads.html
et Nbconvert
pip install nbconvert
# OR
conda install nbconvert
Script Python
# Script adapted from CloudCray
# Original Source: https://Gist.github.com/CloudCray/994dd361dece0463f64a
# 2016--06-29
# This will create both an HTML and a PDF file
import subprocess
import os
from Tkinter import Tk
from tkFileDialog import askopenfilename
WKHTMLTOPDF_PATH = "C:/Program Files/wkhtmltopdf/bin/wkhtmltopdf" # or wherever you keep it
def export_to_html(filename):
cmd = 'ipython nbconvert --to html "{0}"'
subprocess.call(cmd.format(filename), Shell=True)
return filename.replace(".ipynb", ".html")
def convert_to_pdf(filename):
cmd = '"{0}" "{1}" "{2}"'.format(WKHTMLTOPDF_PATH, filename, filename.replace(".html", ".pdf"))
subprocess.call(cmd, Shell=True)
return filename.replace(".html", ".pdf")
def export_to_pdf(filename):
fn = export_to_html(filename)
return convert_to_pdf(fn)
def main():
print("Export IPython notebook to PDF")
print(" Please select a notebook:")
Tk().withdraw() # Starts in folder from which it is started, keep the root window from appearing
x = askopenfilename() # show an "Open" dialog box and return the path to the selected file
x = str(x.split("/")[-1])
print(x)
if not x:
print("No notebook selected.")
return 0
else:
fn = export_to_pdf(x)
print("File exported as:\n\t{0}".format(fn))
return 1
main()
Pour convertir un ordinateur portable Jupyter au format PDF, veuillez suivre les instructions ci-dessous:
( Soyez dans le cahier Jupyter ):
Sur Mac OS :
commande + P -> vous obtiendrez une boîte de dialogue d'impression -> changer la destination en tant que PDF -> Cliquez sur Imprimer
Sur Windows :
Ctrl + P -> vous obtiendrez une boîte de dialogue d'impression -> changer la destination en tant que PDF -> Cliquez sur Imprimer
Si les étapes ci-dessus ne génèrent pas la totalité du PDF du bloc-notes Jupyter (probablement parce que Chrome ne s'imprime parfois pas toutes les sorties car Jupyter fait un parchemin pour les grandes sorties),
Essayez d'effectuer les opérations ci-dessous pour supprimer le défilement automatique dans le menu : -
Crédits: @ ÂngeloPolotto
Si vous utilisez sagemath version cloud, vous pouvez simplement aller dans le coin gauche,
sélectionnez Fichier -> Télécharger sous -> Pdf via LaTeX (.pdf)
Vérifiez la capture d'écran si vous le souhaitez.
Capture d'écran convertir ipynb en pdf
Si cela ne fonctionne pas pour une raison quelconque, vous pouvez essayer une autre façon.
sélectionnez Fichier -> Aperçu avant impression, puis sur l'aperçu
cliquez avec le bouton droit de la souris sur -> Imprimer, puis sélectionnez enregistrer en tant que pdf.
Ce problème a été rencontré avec Ubuntu et Mac OSX. Après une série effrénée de recherches et d’essais, les deux ont été résolus. Cela nécessite à la fois tex
et pandoc
; Les deux programmes externes jumbo ne peuvent pas être installés par pip
de Python.
Mac OSX: utilisation de MacPorts pour l'installation de pandoc
port install pandoc
Cela devrait prendre presque une heure (dans le cas habituel). Si le problème persiste, vous devrez peut-être installer MacTeX distro. de TeXLive.
Pour Ubuntu: installez Vanilla TeXLive à partir du programme d'installation résea - et non via apt-get . Puis installez pandoc en utilisant apt-get.
Sudo apt-get install pandoc
Une installation complète de TeXLive nécessiterait jusqu'à 4,4 Go sur disque.
Pour éviter tous ces problèmes, la méthode recommandée pour utiliser IPython/Jupyter Notebook consiste à installer Anaconda Python distribution.
Ce que j’ai trouvé c’est que nbconvert/utils/pandoc.py avait un bogue de code qui a entraîné l’erreur pour ma machine. Le code vérifie si pandoc est dans le chemin de vos variables d'environnement. Pour ma machine, la réponse est non. Cependant, pandoc.exe est!
La solution a été d’ajouter ".exe" au code de la ligne 69.
if __version is None:
if not which('pandoc.exe'):
raise PandocMissing()
Il en va de même pour 'xelatex' n'est pas installé. Ajouter au fichier nbconvert/exporters/pdf.py à la ligne 94
cmd = which(command_list[0]+'.exe')
En tant que tout nouveau membre, je n'ai pas pu simplement ajouter un commentaire sur le post, mais je tiens également à dire que la solution proposée par Phillip Schwartz a fonctionné pour moi. Espérons que les personnes dans une situation similaire essayeront cette voie plus tôt avec l'accent. Ne pas avoir de sauts de page était un problème frustrant pendant un bon bout de temps, donc je suis reconnaissant pour la discussion ci-dessus.
Comme Phillip Schwartz a déclaré: "Vous devrez installer wkhtmltopdf: [ http://wkhtmltopdf.org/downloads.html] [1]
et Nbconvert "
Vous ajoutez ensuite une cellule du type "rawNBConvert" et incluez:
<p style="page-break-after:always;"></p>
Cela semblait faire l'affaire pour moi, et le PDF généré avait le saut de page aux emplacements correspondants. Cependant, vous n'avez pas besoin d'exécuter le code personnalisé, car il semble que le chemin "normal" de téléchargement du bloc-notes au format HTML, d'ouverture dans le navigateur et d'impression sur PDF fonctionne une fois ces utilitaires installés.
J'ai eu toutes sortes de problèmes pour comprendre cela aussi. Je ne sais pas s'il vous fournira exactement ce dont vous avez besoin, mais j'ai téléchargé mon ordinateur portable sous forme de fichier HTML, puis je l'ai extrait dans mon navigateur Chrome, puis je l'ai imprimé en tant que PDF fichier que j'ai sauvegardé. Il a capturé tout mon code, texte et graphiques. C'était assez bien pour ce dont j'avais besoin.
Pour convertir .IPYNB en PDF, votre système doit contenir 2 composants,
nbconvert: Fait partie de jupyter permet de convertir ipynb en pdf
pip install nbconvert OR conda install nbconvert
XeTeX: Convertissez ipynb au format .tex puis convertissez au format pdf.
Sudo apt-get install texlive-xetex
Ensuite, vous pouvez utiliser la commande ci-dessous pour convertir en PDF,
ipython nbconvert --to pdf YOURNOTEBOOK.ipynb
Au cas où cela ne fonctionnerait pas, installez pandoc et réessayez.
Sudo apt-get install pandoc