Próbowałem więc zapisać notatnik jupyter jako plik PDF, ale po prostu nie mogę dowiedzieć się, jak to zrobić. Pierwszą rzeczą, którą próbuję, jest pobranie z menu plików po prostu jako PDF, ale w rezultacie:
nbconvert failed: PDF creating failed
Następną rzeczą, którą próbuję, jest próba konwersji z wiersza polecenia w ten sposób
$ ipython nbconvert --to latex --post PDF MyNotebook.ipynb
ale znowu powoduje to komunikat o błędzie
ImportError: No module named 'PDF'
i jeśli spróbuję
$ ipython nbconvert --to latex MyNotebook.ipynb
to skutkuje
IPython.nbconvert.utils.pandoc.PandocMissing: Pandoc wasn't found:
Please check that pandoc is installed
jeśli spróbuję zainstalować pandoc ( pip install pandoc
), to daje mi
ImportError: No module named 'ConfigParser'
i tutaj utknąłem, ponieważ po prostu nie wiem, co jeszcze zrobić. Czy ktoś ma pomysł, jak naprawić to, co jest nie tak?
pandoc
ilatex
)Odpowiedzi:
Aby to działało, zainstalowałem latex, typowy latex extra i pandoc.
Z ubuntu:
zajmuje to trochę czasu: kilka 100 Mb do pobrania. Czytałem gdzieś, że możesz użyć
--no-install-recommends
do texlive i extra, aby zredukować do dl.źródło
pandoc
itexlive-xetex
.texlive-generic-extra
rozwiązania tego problemu , pozatexlive-xetex
tym, co zasugerował @douggard.Jeśli używasz komputera Mac i masz zainstalowany program Homebrew, otwórz powłokę terminala i zainstaluj pandoc, wpisując polecenie:
brew install pandoc
bądź cierpliwy, czas instalacji i kompilacji może zająć trochę czasu w przypadku wolnych połączeń internetowych lub starszych systemów.
źródło
brew install pandoc
ibrew cask install mactex-no-gui
.2015-4-22: Wygląda na to, że aktualizacja IPythona oznacza, że
--to pdf
powinna być używana zamiast--to latex --post PDF
. Istnieje powiązany problem z Githubem .źródło
Aby przekonwertować notatniki do formatu PDF, musisz najpierw zainstalować nbconvert.
pip install nbconvert # OR conda install nbconvert
Następnie, jeśli nie używasz Anacondy lub jeszcze tego nie zrobiłeś, musisz zainstalować pandoc, postępując zgodnie z instrukcjami na ich stronie internetowej lub w systemie Linux w następujący sposób:
Następnie musisz mieć zainstalowany XeTex na swoim komputerze:
Możesz teraz przejść do folderu, w którym znajduje się Twój notatnik IPython i uruchomić następujące polecenie:
w celu uzyskania dalszych informacji, sprawdź ten link .
źródło
Jak mówią komentarze do pytania, będziesz potrzebować pandoku i lateksu (np. TeXShop). Zainstalowałem pandoc z Homebrew, zajęło to tylko sekundę. Mając pandoc i TeXShop, mogłem generować lateks, ale nie PDF (w linii poleceń).
Eksplorując plik latex (.tex) w TeXShop, błąd wynikał z braku arkuszy stylów i definicji. Po zainstalowaniu tych wszystkich (adjustbox.sty, adjcalc.sty, trimclip.sty, collectbox.sty, tc-pgf.def, ucs.sty, uni-global.def, utf8x.def, ucsencs.def) w końcu się udało praca.
Jednak wynik wygląda trochę zbyt fajnie jak na mój gust. Szkoda, że drukowanie html z Safari traci kolorowanie składni. W przeciwnym razie nie wygląda to tak źle. (To wszystko na OS X).
źródło
jupyter nbconvert --to pdf filename.ipynb
Ten skrypt Pythona ma GUI do wybrania za pomocą eksploratora notatnika Ipython, który chcesz przekonwertować do formatu PDF. Podejście z wkhtmltopdf to jedyne podejście, które znalazłem, działa dobrze i zapewnia wysokiej jakości pliki PDF. Inne opisane tutaj podejścia są problematyczne, podświetlanie składni nie działa lub wykresy są popsute.
Musisz zainstalować wkhtmltopdf: http://wkhtmltopdf.org/downloads.html
i Nbconvert
pip install nbconvert # OR conda install nbconvert
Skrypt w Pythonie
# 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()
źródło
nbconvert
do eksportu do html, a następnie używaszwkhtmltopdf
do konwersji do pdf. ale to nie jest jasne z Twojej odpowiedzi :-)Używam notebooka Anaconda-Jupyter w systemie operacyjnym: Ubuntu 16.0 do programowania w języku Python.
Zainstaluj Nbconvert, Pandoc i Tex:
Otwórz terminal i zaimplementuj w nim następujące polecenia.
Zainstaluj Nbconvert: chociaż jest to część ekosystemu Jupyter, nadal zainstaluj go ponownie
Lub
Ale polecę użycie conda zamiast pip, jeśli używasz anakondy
Zainstaluj Pandoc: ponieważ Nbconvert używa Pandoc do konwersji markdown do formatów innych niż HTML. Wpisz następujące polecenie
Zainstaluj TeX: do konwersji do formatu PDF, nbconvert używa TeX-a. Wpisz następujące polecenie
Po wykonaniu tych poleceń zamknij otwarte notatniki odśwież stronę główną Lub zrestartuj jądro otwartego notatnika. Teraz spróbuj pobrać notatnik w formacie PDF :)
Uwaga: aby uzyskać więcej informacji, zapoznaj się z oficjalną dokumentacją:
https://nbconvert.readthedocs.io/en/latest/install.html
źródło
Aby przekonwertować dowolny notatnik Jupyter do formatu PDF, postępuj zgodnie z poniższymi instrukcjami:
( Bądź w notatniku Jupyter ):
W systemie Mac OS :
polecenie + P -> pojawi się okno dialogowe drukowania -> zmień miejsce docelowe na PDF -> kliknij Drukuj
W systemie Windows :
Ctrl + P -> pojawi się okno dialogowe drukowania -> zmień miejsce docelowe na PDF -> kliknij Drukuj
Jeśli powyższe kroki nie generują pełnego pliku PDF notebooka Jupyter (prawdopodobnie dlatego, że Chrome czasami nie drukuje wszystkich wyników, ponieważ Jupyter wykonuje przewijanie dla dużych wyników),
Spróbuj wykonać poniższe czynności, aby usunąć automatyczne przewijanie w menu : -
Kredyty: @ ÂngeloPolotto
W notatniku Jupyter kliknij Komórka na górze notesu Jupyter
Następnie kliknij Wszystkie dane wyjściowe -> Przełącz przewijanie, aby usunąć automatyczne przewijanie.
źródło
Ten problem wystąpił zarówno w systemie Ubuntu, jak i Mac OSX. Po szalonych poszukiwaniach i próbach oba zostały rozwiązane. Wymaga to zarówno
tex
ipandoc
; oba zewnętrzne programy jumbo nie mogą zostać zainstalowane przez Pythonapip
.Powinno to zająć prawie godzinę (w zwykłym przypadku). Jeśli problem będzie się powtarzał, może być konieczne zainstalowanie dystrybucji MacTeX. TeXLive.
Pełna instalacja TeXLive wymagałaby do 4,4 GB miejsca na dysku.
Aby zaoszczędzić na tym wszystkim, zalecanym sposobem korzystania z IPython / Jupyter Notebook byłoby zainstalowanie dystrybucji Anaconda Python.
źródło
Miałem też wiele problemów, aby to rozgryźć. Nie wiem, czy dostarczy dokładnie tego, czego potrzebujesz, ale pobrałem mój notebook jako plik HTML, a następnie pobrałem go w przeglądarce Chrome, a następnie wydrukowałem jako plik PDF, który zapisałem. Przechwycił cały mój kod, tekst i wykresy. To było wystarczająco dobre na to, czego potrzebowałem.
źródło
Jeśli korzystasz z wersji sagemath w chmurze, możesz po prostu przejść do lewego rogu i
wybrać Plik -> Pobierz jako -> Pdf przez LaTeX (.pdf).
Jeśli chcesz, sprawdź zrzut ekranu.
Zrzut ekranu Konwertuj ipynb na pdf
Jeśli z jakiegoś powodu to nie zadziała, możesz spróbować innego sposobu.
wybierz Plik -> Podgląd wydruku a następnie na podglądzie
kliknij prawym przyciskiem myszy -> Drukuj a następnie wybierz zapisz jako pdf.
źródło
Jako nowy członek nie mogłem po prostu dodać komentarza do posta, ale chcę dodać, że rozwiązanie oferowane przez Phillipa Schwartza zadziałało dla mnie. Miejmy nadzieję, że ludzie w podobnej sytuacji spróbują tej ścieżki wcześniej z naciskiem. Brak podziałów stron był frustrującym problemem przez dłuższy czas, więc jestem wdzięczny za powyższą dyskusję.
Jak powiedział Phillip Schwartz: „Musisz zainstalować wkhtmltopdf: [ http://wkhtmltopdf.org/downloads.html][1]
i Nbconvert "
Następnie dodajesz komórkę typu „rawNBConvert” i dodajesz:
<p style="page-break-after:always;"></p>
Wydawało się, że to załatwiło sprawę, a wygenerowany plik PDF miał podział strony w odpowiednich miejscach. Nie musisz jednak uruchamiać niestandardowego kodu, ponieważ wydaje się, że „normalna” ścieżka pobierania notatnika w formacie HTML, otwierania w przeglądarce i drukowania do formatu PDF działa po zainstalowaniu tych narzędzi.
źródło
notebook-as-pdf Zainstaluj python -m pip zainstaluj notebook-as-pdf pyppeteer-install
Użyj tego Możesz go również użyć z nbconvert:
jupyter-nbconvert --to PDF viaHTML nazwa_pliku.ipynb
co spowoduje utworzenie pliku o nazwie nazwa_pliku.pdf.
lub pip install notebook-as-pdf
utwórz plik PDF z notatnika jupyter-nbconvert-toPDFviaHTML
źródło
Odkryłem, że plik nbconvert / utils / pandoc.py zawiera błąd kodu, który spowodował błąd na moim komputerze. Kod sprawdza, czy pandoc znajduje się w ścieżce zmiennych środowiskowych. W przypadku mojej maszyny odpowiedź brzmi: nie. Jednak pandoc.exe jest!
Rozwiązaniem było dodanie „.exe” do kodu w linii 69
if __version is None: if not which('pandoc.exe'): raise PandocMissing()
To samo dotyczy „xelatex” nie jest zainstalowany. Dodaj do pliku nbconvert / exporters / pdf.py w wierszu 94
cmd = which(command_list[0]+'.exe')
źródło
Aby przekonwertować .ipynb na pdf, twój system powinien zawierać 2 komponenty,
nbconvert : Jest częścią jupyter pozwala na konwersję ipynb do pdf
XeTeX: Konwertuj ipynb do formatu .tex, a następnie konwertuj do formatu PDF.
Następnie możesz użyć poniższego polecenia, aby przekonwertować na pdf,
Jeśli to nie zadziała, zainstaluj pandoc i spróbuj ponownie.
źródło
Dla użytkowników Ubuntu odpowiedź można znaleźć tutaj . Cytuję również:
źródło
Miałem problemy z poprawnym wyświetlaniem niektórych symboli przy regularnym pobieraniu w formacie PDF . Pobrałem więc jako tex
jupyter nbconvert --to latex "my notebook.ipynb"
, trochę poprawiłem w notatniku (na przykład w moim przypadku potrzebowałem tych wierszy dla mojego języka), a następnie wyeksportowano do pliku PDF z rozszerzeniem
latex --output-format=pdf "my notebook.tex"
.Ale w końcu jednak, aby zachować te same znaki, jak widać w przeglądarce I skończyło się moje drukowanie przeglądarki Chrome:
Ctrl+P
Print to pdf
. Dodaje niepotrzebny nagłówek i stopkę, ale wszystko inne pozostaje takie, jakie jest. Koniec z błędami przetwarzania paska postępu tqdm, koniec kodu wychodzącego ze strony i tak dalej. Proste.źródło
W każdym systemie podstawowe kroki, aby poprawnie skonfigurować nbconvert do konwersji notebooków ipython do formatu PDF / Latex są
Instalowanie nbconvert
pip install nbconvert
lub
conda install nbconvert
Instalowanie pandoc
sudo apt-get install pandoc
dla Ubuntulub
sudo yum install pandoc
dla CentOSdla innych odwiedź instalację pandoc
Instalowanie texlive
Możesz zainstalować zalecane pakiety lub przeprowadzić pełną instalację. W przypadku Ubuntu
`
Dla innych i dla pełnej instalacji texlive postępuj zgodnie z instrukcjami podanymi przy holowaniu zgodnie z twoim systemem i wyborem.
Pobrałem plik tar.gz z tug-texlive-download i postępowałem zgodnie z instrukcjami podanymi w TeX Live - Szybka instalacja . Podsumowanie instrukcji montażu:
Sprzątać
rm -rf /usr/local/texlive/2019
rm -rf ~/.texlive2019
Uruchom instalator
rozpakuj plik zip
cd /your/unpacked/directory
perl install-tl
Wpisz polecenie: i
Ustawienie ścieżki
sudo vi /etc/bash.bashrc
i włóżPATH=/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
Ustawianie domyślnego rozmiaru papieru
tlmgr paper letter
Polecenia mogą się różnić w zależności od systemu, ale podstawowe kroki pozostają takie same.
źródło
Miałem ten błąd w Windows 10. Wykonałem te trzy kroki i rozwiązałem mój problem:
Zainstaluj nbconvert
pip zainstaluj nbconvert
Zainstaluj pandoc
https://pandoc.org/installing.html
https://miktex.org/download
Dobrze jest też zaktualizować biblioteki:
źródło