Also habe ich versucht, ein Jupyter-Notizbuch als PDF zu speichern, aber ich kann einfach nicht herausfinden, wie das geht. Das erste, was ich versuche, ist aus dem Dateimenü einfach als PDF herunterzuladen, aber das führt zu:
nbconvert failed: PDF creating failed
Als nächstes versuche ich, die Konvertierung von der Eingabeaufforderung wie folgt durchzuführen
$ ipython nbconvert --to latex --post PDF MyNotebook.ipynb
Dies führt jedoch wiederum zu einer Fehlermeldung
ImportError: No module named 'PDF'
und wenn ich es versuche
$ ipython nbconvert --to latex MyNotebook.ipynb
das führt zu
IPython.nbconvert.utils.pandoc.PandocMissing: Pandoc wasn't found:
Please check that pandoc is installed
Wenn ich versuche, pandoc ( pip install pandoc
) zu installieren , gibt mir das
ImportError: No module named 'ConfigParser'
und hier stecke ich fest, weil ich einfach nicht weiß, was ich sonst tun soll. Hat jemand eine Idee, wie man das Problem behebt?
pandoc
undlatex
)Antworten:
Damit es funktioniert, habe ich Latex, typisches Latex-Extra und Pandoc installiert.
Mit Ubuntu:
Das Herunterladen dauert einige Male: mehrere 100 MB. Ich habe irgendwo gelesen, dass man
--no-install-recommends
für texlive und extra verwenden kann, um auf dl zu reduzieren.quelle
pandoc
undtexlive-xetex
.texlive-generic-extra
zur Lösung dieses Problems , abgesehen vontexlive-xetex
dem von @douggard vorgeschlagenen.Wenn Sie auf einem Mac arbeiten und Homebrew installiert haben, öffnen Sie eine Terminal-Shell und installieren Sie pandoc, indem Sie den folgenden Befehl eingeben:
Brew install pandoc
Seien Sie geduldig, die Installation und Kompilierung kann bei langsamen Internetverbindungen oder älteren Systemen eine Weile dauern.
quelle
brew install pandoc
undbrew cask install mactex-no-gui
.2015-4-22: Es sieht so aus, als ob ein IPython-Update bedeutet, dass
--to pdf
anstelle von verwendet werden sollte--to latex --post PDF
. Es gibt ein verwandtes Github-Problem .quelle
Um Notebooks in PDF zu konvertieren, muss zuerst nbconvert installiert sein.
pip install nbconvert # OR conda install nbconvert
Wenn Sie Anaconda nicht verwenden oder noch nicht verwendet haben, müssen Sie pandoc installieren, indem Sie den Anweisungen auf der Website oder unter Linux wie folgt folgen:
Danach muss XeTex auf Ihrem Computer installiert sein:
Sie können jetzt zu dem Ordner navigieren, in dem sich Ihr IPython-Notizbuch befindet, und den folgenden Befehl ausführen:
Weitere Informationen finden Sie unter diesem Link .
quelle
Wie in den Kommentaren zur Frage angegeben, benötigen Sie Pandoc und Latex (z. B. TeXShop). Ich habe Pandoc mit Homebrew installiert, es dauerte nur eine Sekunde. Mit Pandoc und TeXShop konnte ich Latex generieren, aber kein PDF (in der Befehlszeile).
Beim Durchsuchen der Latexdatei (.tex) mit TeXShop war der Fehler auf fehlende Stylesheets und Defs zurückzuführen. Nach der Installation all dieser Elemente (adjustbox.sty, adjcalc.sty, trimclip.sty, collectbox.sty, tc-pgf.def, ucs.sty, uni-global.def, utf8x.def, ucsencs.def) war es endlich soweit Arbeit.
Das Ergebnis sieht jedoch für meinen Geschmack etwas zu funky aus. Es ist schade, dass das Drucken des HTML-Codes von Safari die Syntaxfarbe verliert. Ansonsten sieht es nicht so schlecht aus. (Dies ist alles unter OS X).
quelle
jupyter nbconvert --to pdf filename.ipynb
Dieses Python-Skript verfügt über eine grafische Benutzeroberfläche, mit der Sie mit dem Explorer ein Ipython-Notizbuch auswählen können, das Sie in PDF konvertieren möchten. Der Ansatz mit wkhtmltopdf ist der einzige Ansatz, bei dem ich festgestellt habe, dass er gut funktioniert und qualitativ hochwertige PDFs bietet. Andere hier beschriebene Ansätze sind problematisch, die Syntaxhervorhebung funktioniert nicht oder Diagramme sind durcheinander.
Sie müssen wkhtmltopdf installieren: http://wkhtmltopdf.org/downloads.html
und Nbconvert
pip install nbconvert # OR conda install nbconvert
Python-Skript
# 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()
quelle
nbconvert
exportieren Sie in HTML undwkhtmltopdf
konvertieren dann in PDF. aber das ist nicht klar aus deiner Antwort :-)Ich verwende Anaconda-Jupyter Notebook unter OS: Ubuntu 16.0 für die Python-Programmierung.
Installieren Sie Nbconvert, Pandoc und Tex:
Öffnen Sie ein Terminal und implementieren Sie die folgenden Befehle.
Installieren Sie Nbconvert: Obwohl es Teil des Jupyter-Ökosystems ist, installieren Sie es erneut
Oder
Aber ich werde empfehlen, Conda anstelle von Pip zu verwenden, wenn Sie Anaconda verwenden
Pandoc installieren: Da Nbconvert Pandoc verwendet, um Markdown in andere Formate als HTML zu konvertieren. Geben Sie den folgenden Befehl ein
TeX installieren: Für die Konvertierung in PDF verwendet nbconvert TeX. Geben Sie den folgenden Befehl ein
Schließen Sie nach Ausführung dieser Befehle die geöffneten Notizbücher, aktualisieren Sie die Startseite oder starten Sie den Kernel des geöffneten Notizbuchs neu. Versuchen Sie nun, das Notizbuch als PDF herunterzuladen :)
Hinweis: Weitere Informationen finden Sie in der offiziellen Dokumentation:
https://nbconvert.readthedocs.io/en/latest/install.html
quelle
Befolgen Sie zum Konvertieren eines Jupyter-Notebooks in PDF die folgenden Anweisungen:
( Seien Sie im Jupyter-Notizbuch ):
Unter Mac OS :
Befehl + P -> Sie erhalten ein Druckdialogfeld -> Ziel als PDF ändern -> Klicken Sie auf Drucken
Unter Windows :
Strg + P -> Sie erhalten ein Druckdialogfeld -> Ziel als PDF ändern -> Klicken Sie auf Drucken
Wenn die obigen Schritte keine vollständige PDF-Datei des Jupyter-Notizbuchs generieren (wahrscheinlich, weil Chrome manchmal nicht alle Ausgaben druckt, weil Jupyter einen Bildlauf für große Ausgaben erstellt),
Führen Sie die folgenden Schritte aus, um den automatischen Bildlauf im Menü zu entfernen : -
Credits: @ ÂngeloPolotto
Klicken Sie in Ihrem Jupyter-Notizbuch oben auf dem Jupyter-Notizbuch auf Zelle
Klicken Sie anschließend auf Alle Ausgaben -> Bildlauf umschalten, um den automatischen Bildlauf zu entfernen.
quelle
Dieses Problem trat sowohl bei Ubuntu als auch bei Mac OSX auf. Nach einer hektischen Reihe von Suchen und Versuchen wurden beide gelöst. Dies erfordert sowohl
tex
undpandoc
; Beide externen Jumbo-Programme können nicht von Python installiert werdenpip
.Dies sollte fast eine Stunde in Anspruch nehmen (im abzuschließen üblichen Fall). Wenn das Problem weiterhin besteht, müssen Sie möglicherweise die MacTeX-Distribution installieren. von TeXLive.
Eine vollständige Installation von TeXLive würde bis zu 4,4 GB auf der Festplatte erfordern.
Um all diese Probleme zu vermeiden, wird empfohlen, IPython / Jupyter Notebook zu verwenden, indem Sie die Anaconda Python-Distribution installieren.
quelle
Ich hatte alle möglichen Probleme, das herauszufinden. Ich weiß nicht, ob es genau das bietet, was Sie benötigen, aber ich habe mein Notizbuch als HTML-Datei heruntergeladen, es dann in meinem Chrome-Browser aufgerufen und dann als PDF-Datei gedruckt, die ich gespeichert habe. Es hat meinen gesamten Code, Text und meine Grafiken erfasst. Es war gut genug für das, was ich brauchte.
quelle
Wenn Sie die Sagemath- Cloud-Version verwenden, können Sie einfach in die linke Ecke gehen und
Datei -> Herunterladen als -> PDF über LaTeX (.pdf) auswählen.
Überprüfen Sie den Screenshot, wenn Sie möchten.
Screenshot Konvertieren Sie ipynb in pdf
Wenn es aus irgendeinem Grund nicht funktioniert, können Sie einen anderen Weg versuchen.
Wählen Sie Datei -> Druckvorschau und
klicken Sie dann in der Vorschau mit der rechten Maustaste -> Drucken und wählen Sie dann als PDF speichern.
quelle
Als brandneues Mitglied konnte ich nicht einfach einen Kommentar zu dem Beitrag hinzufügen, aber ich möchte darauf hinweisen, dass die von Phillip Schwartz angebotene Lösung für mich funktioniert hat. Hoffentlich versuchen Menschen in einer ähnlichen Situation diesen Weg früher mit dem Schwerpunkt. Es war eine ganze Weile lang frustrierend, keine Seitenumbrüche zu haben, deshalb bin ich für die obige Diskussion dankbar.
Wie Phillip Schwartz sagte: "Sie müssen wkhtmltopdf installieren: [ http://wkhtmltopdf.org/downloads.html weibl. [1 ]
und Nbconvert "
Anschließend fügen Sie eine Zelle vom Typ "rawNBConvert" hinzu und fügen Folgendes hinzu:
<p style="page-break-after:always;"></p>
Das schien der Trick für mich zu sein, und das generierte PDF hatte den Seitenumbruch an den entsprechenden Stellen. Sie müssen den benutzerdefinierten Code jedoch nicht ausführen, da der "normale" Pfad zum Herunterladen des Notebooks als HTML, Öffnen im Browser und Drucken in PDF nach Installation dieser Dienstprogramme funktioniert.
quelle
notebook-as-pdfInstall python -m pip install notebook-as-pdf pyppeteer-install
Verwenden Sie es Sie können es auch mit nbconvert verwenden:
jupyter-nbconvert --to PDFviaHTML filename.ipynb
Dadurch wird eine Datei mit dem Namen filename.pdf erstellt.
oder pip install notebook-as-pdf
Erstellen Sie ein PDF aus dem Notizbuch jupyter-nbconvert-toPDFviaHTML
quelle
Was ich fand, war, dass die Datei nbconvert / utils / pandoc.py einen Codefehler hatte, der zu dem Fehler für meinen Computer führte. Der Code prüft, ob sich pandoc in Ihrem Umgebungsvariablenpfad befindet. Für meine Maschine lautet die Antwort nein. Allerdings ist pandoc.exe!
Die Lösung bestand darin, dem Code in Zeile 69 '.exe' hinzuzufügen
if __version is None: if not which('pandoc.exe'): raise PandocMissing()
Gleiches gilt für 'xelatex' ist nicht installiert. Fügen Sie der Datei nbconvert / exporters / pdf.py in Zeile 94 hinzu
cmd = which(command_list[0]+'.exe')
quelle
Um .ipynb in pdf zu konvertieren, sollte Ihr System 2 Komponenten enthalten:
nbconvert : Ist ein Teil von Jupyter erlaubt es, ipynb in pdf zu konvertieren
XeTeX: Konvertieren Sie ipynb in das .tex-Format und konvertieren Sie es dann in pdf.
Dann können Sie den folgenden Befehl verwenden, um in PDF zu konvertieren.
Falls es nicht funktioniert, installieren Sie pandoc und versuchen Sie es erneut.
quelle
Für Ubuntu-Benutzer finden Sie hier eine Antwort . Ich zitiere es auch:
quelle
Ich hatte Probleme, einige Symbole beim regulären Download als PDF korrekt anzuzeigen . Also als Tex heruntergeladen
jupyter nbconvert --to latex "my notebook.ipynb"
, einige Änderungen mit dem Editor vorgenommen (als Beispiel, in meinem Fall brauchte ich diese Zeilen für meine Sprache) und dann mit pdf exportiert
latex --output-format=pdf "my notebook.tex"
.Um jedoch die gleichen Zeichen beizubehalten, die Sie in einem Browser sehen, habe ich schließlich meinen Chrome-Browserdruck verwendet :
Ctrl+P
Print to pdf
. Es fügt unnötige Kopf- und Fußzeilen hinzu, aber alles andere bleibt wie es ist. Keine Fehler mehr bei der Verarbeitung des tqdm-Fortschrittsbalkens, kein Code mehr, der von der Seite ausgeht und so weiter. So einfach ist das.quelle
In jedem System sind die grundlegenden Schritte zum korrekten Einrichten von nbconvert zum Konvertieren von ipython-Notebooks in PDF / Latex
Nbconvert installieren
pip install nbconvert
oder
conda install nbconvert
Pandoc installieren
sudo apt-get install pandoc
für Ubuntuoder
sudo yum install pandoc
für CentOSfür andere besuchen Sie die Pandoc-Installation
Texlive installieren
Sie können empfohlene Pakete oder eine vollständige Installation installieren. Für Ubuntu
`
Für andere und zur vollständigen Installation von texlive befolgen Sie die Anweisungen bei tug gemäß Ihrem System und Ihrer Wahl.
Ich habe die Datei tar.gz von tug-texlive-download heruntergeladen und die Anweisungen von TeX Live - Quick install befolgt . Installationsanleitung zusammenfassend:
Aufräumen
rm -rf /usr/local/texlive/2019
rm -rf ~/.texlive2019
Führen Sie das Installationsprogramm aus
Entpacken Sie die Zip-Datei
cd /your/unpacked/directory
perl install-tl
Befehl eingeben: i
Pfad einstellen
sudo vi /etc/bash.bashrc
und einfügenPATH=/usr/local/texlive/2019/bin/x86_64-linux:$PATH; export PATH
MANPATH=/usr/local/texlive/2019/texmf-dist/doc/man:$MANPATH; export MANPATH
INFOPATH=/usr/local/texlive/2019/texmf-dist/doc/info:$INFOPATH; export INFOPATH
Festlegen der Standard-Papiergröße
tlmgr paper letter
Die Befehle können je nach System unterschiedlich sein, die grundlegenden Schritte bleiben jedoch gleich.
quelle
Ich hatte diesen Fehler in Windows 10. Ich habe diese drei Schritte ausgeführt und mein Problem gelöst:
Installieren Sie nbconvert
pip install nbconvert
Installieren Sie pandoc
https://pandoc.org/installing.html
https://miktex.org/download
Es ist auch gut, Bibliotheken zu aktualisieren:
quelle