Donc, j’ai essayé de sauver un ordinateur portable jupyter au format PDF, mais je n’arrive pas à comprendre comment faire. La première chose que je tente de faire est de télécharger le fichier au format PDF, mais cela se traduit par:
nbconvert failed: PDF creating failed
la prochaine chose que je tente est d’essayer de faire la conversion à partir de l’invite de commande comme ceci
$ ipython nbconvert --to latex --post PDF MyNotebook.ipynb
mais encore une fois, cela se traduit par un message d’erreur
ImportError: No module named 'PDF'
et si j’essaie
$ 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 suis coincé parce que je ne sais pas quoi faire d’autre. Quelqu’un a-t-il une idée de comment réparer ce qui ne va pas?
Si vous êtes sur Mac et que Homebrew est installé, ouvrez un terminal shell et installez pandoc en tapant la commande:
armser installer pandoc
Soyez patient, le temps d’installation et de compilation peut prendre un certain temps sur 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 quelques temps: plusieurs 100 Mb à télécharger. J’ai lu quelque part que vous pouvez utiliser --no-install-recommends
pour texlive et extra pour réduire à la 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 y a un problème lié à Github .
Comme le disent les commentaires à la question, vous aurez besoin de pandoc et de latex (par exemple, TeXShop). J’ai installé pandoc avec Homebrew, cela ne m’a pris qu’une seconde. Ayant pandoc et TeXShop, je pouvais générer du latex mais pas de pdf (sur la ligne de commande).
ipython nbconvert --to latex mynotebook.ipynb
En explorant le fichier latex (.tex) avec TeXShop, l’échec était dû à des feuilles de style et à des defs manquants. Après avoir installé tous ceux-ci (adjustbox.sty, adjcalc.sty, sortingmclip.sty, collectbox.sty, tc-pgf.def, ucs.sty, uni-global.def, utf8x.def, ucsencs.def), il a finalement fait travail.
Cependant, le résultat est un peu trop funky à mon goût. Il est dommage que l’impression du fichier HTML à partir de Safari perd la coloration de la syntaxe. Sinon, ça n’a pas l’air si mal. (Tout est sous OS X).
Ce problème a été rencontré avec Ubuntu et Mac OSX. Après une série de recherches et d’essais frénétiques, 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 le pip
de Python.
Mac OSX: utilisation de l’installation MacPorts de pandoc
port install pandoc
Cela devrait prendre près d’une heure pour terminer (dans le cas habituel ). Si le problème persiste, vous devrez peut-être installer la dissortingbution MacTeX. de TeXLive.
Pour Ubuntu: installez vanilla TeXLive à partir de l’ installateur réseau – pas via apt-get . Ensuite, installez pandoc en utilisant apt-get.
sudo apt-get install pandoc
Une installation complète de TeXLive nécessiterait jusqu’à 4,4 Go sur le disque.
Pour sauver tous ces problèmes, la méthode recommandée pour utiliser IPython / Jupyter Notebook serait d’installer la dissortingbution Python Anaconda.
Ce script Python a une interface graphique pour sélectionner avec l’explorateur un carnet d’ipython que vous souhaitez convertir en pdf. L’approche de wkhtmltopdf est la seule approche que j’ai trouvée qui fonctionne bien et fournit des fichiers PDF de haute qualité. D’autres approches décrites ici sont problématiques, la mise en évidence de la syntaxe ne fonctionne pas ou les graphiques sont perturbé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()
Si vous utilisez la version sagemath 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 voulez.
Capture d’écran Convertir ipynb en pdf
Si cela ne fonctionne pas pour une raison quelconque, vous pouvez essayer une autre manière.
sélectionnez Fichier -> Aperçu avant impression, puis sur l’aperçu
Faites un clic droit -> Imprimer, puis sélectionnez Enregistrer sous format pdf.
J’ai eu toutes sortes de problèmes pour comprendre cela. Je ne sais pas si elle fournira exactement ce dont vous avez besoin, mais j’ai téléchargé mon ordinateur portable en tant que fichier HTML, puis je l’ai tiré dans mon navigateur Chrome, puis je l’ai imprimé en tant que fichier PDF que j’ai enregistré. Il a capturé tout mon code, texte et graphiques. C’était assez bon pour ce dont j’avais besoin.
Ce que j’ai trouvé, c’est que le nbconvert / utils / pandoc.py avait un bogue de code qui entraînait l’erreur pour ma machine. Le code vérifie si pandoc se trouve dans le chemin de vos variables d’environnement. Pour ma machine, la réponse est non. Cependant pandoc.exe est!
La solution consistait à append «.exe» au code de la ligne 69
if __version is None: if not which('pandoc.exe'): raise PandocMissing()
La même chose vaut pour ‘xelatex’ n’est pas installé. Ajouter au fichier nbconvert / exporters / pdf.py sur la ligne 94
cmd = which(command_list[0]+'.exe')
En tant que nouveau membre, je n’ai pas pu simplement append un commentaire sur le message, mais je tiens à souligner que la solution proposée par Phillip Schwartz a fonctionné pour moi. Espérons que les gens dans une situation similaire essaieront cette voie plus rapidement avec l’accent. Ne pas avoir de sauts de page a été un problème frustrant pendant un certain temps, alors je suis reconnaissant pour la discussion ci-dessus.
Comme Phillip Schwartz a déclaré: “Vous devrez installer wkhtmltopdf: [ http://wkhtmltopdf.org/downloads.html%5D%5B1%5D
et Nbconvert ”
Vous ajoutez ensuite une cellule du type “rawNBConvert” et incluez:
Cela a semblé faire l’affaire et le PDF généré a eu le saut de page aux emplacements correspondants. Cependant, vous n’avez pas besoin d’exécuter le code personnalisé, car il semble que le téléchargement du bloc-notes au format HTML, l’ouverture dans le navigateur et l’impression au format PDF fonctionnent normalement une fois ces utilitaires installés.
J’utilise Anaconda-Jupyter Notebook sur OS: 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 vous recommande d’utiliser conda plutôt que pip 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 rafraîchissez la page d’accueil ou redémarrez le kernel du bloc-notes ouvert. Maintenant, essayez de télécharger le bloc-notes en format pdf 🙂
Note: Pour plus de détails, veuillez vous référer à la documentation officielle:
https://nbconvert.readthedocs.io/en/latest/install.html