Closed adavidzh closed 4 years ago
Do you know which container image your runner is using (python:latest
is what it says but what exactly does that correspond to in terms of OS and version?)?
My guess is that you need to install the APT packages listed in https://github.com/betatim/notebook-as-pdf/blob/master/binder/apt.txt as well. the packages listed there work on the current Ubuntu LTS version.
Chromium is installed on demand by pyppeteer thefirst time you use it. The conversion to PDF is done by chromium.
Do you know which container image your runner is using (
python:latest
is what it says but what exactly does that correspond to in terms of OS and version?)?
The relevant Dockerfile
uses buildpack-deps:buster
which, through some hoops, tracks back to debian:bullseye
.
My guess is that you need to install the APT packages listed in https://github.com/betatim/notebook-as-pdf/blob/master/binder/apt.txt as well. the packages listed there work on the current Ubuntu LTS version.
So, AFAICT the following in .gitlab-ci.yml
installs all the packages correctly:
- apt-get update && apt-get install -y --no-install-recommends apt-utils
- xargs -a apt.txt apt-get install -y
but there's still a pyppeteer.errors.BrowserError: Browser closed unexpectedly
.
Also happens on Ubuntu. Just rebuilt the docker image that mybinder.org uses and it gives same error you are reporting. If I build it locally with repo2docker I also get this.
Investigating what changed.
It looks like I can make it work by disabling the sandbox. Can you change your nbconvert
command-line to jupyter-nbconvert --PDFExporter.no_sandbox=True --to PDFviaHTML some-notebook.ipynb
to see if that works?
If that fixes it I think we should make it the default.
I feel less alone now. Thanks for reproducing the issue.
So, I tried it out and it doesn't work, but perhaps because the first line I get is:
$ jupyter nbconvert --PDFExporter.no_sandbox=True --to PDFviaHTML --execute example.ipynb
[NbConvertApp] WARNING | Config option `no_sandbox` not recognized by `PDFExporter`.
[NbConvertApp] Converting notebook example.ipynb to PDFviaHTML
[NbConvertApp] Executing notebook with kernel: python3
<snip>
I have no versions in my requirements.txt
and pip
seems to be picking up
Collecting nbconvert
Downloading nbconvert-5.6.1-py2.py3-none-any.whl (455 kB)
Can you try without --execute
and which version of notebook-as-pdf do you have installed in your CI environment? It might be that the option to turn off the sandbox was added after the last release. In which case can you install from master iwth pip install https://github.com/betatim/notebook-as-pdf/archive/master.zip
?
In steps:
pip
was pulling
Collecting notebook-as-pdf
Downloading notebook_as_pdf-0.2.0-py3-none-any.whl (5.2 kB)
Removing --execute
did not help:
$ jupyter nbconvert --PDFExporter.no_sandbox=True --to PDFviaHTML example.ipynb
[NbConvertApp] WARNING | Config option `no_sandbox` not recognized by `PDFExporter`.
[NbConvertApp] Converting notebook example.ipynb to PDFviaHTML
<snip>
Installing with pip install https://github.com/betatim/notebook-as-pdf/archive/master.zip
works, and an interesting difference in the logs is that it installs 0.1.0
instead:
$ pip install https://github.com/betatim/notebook-as-pdf/archive/master.zip
Collecting https://github.com/betatim/notebook-as-pdf/archive/master.zip
Downloading https://github.com/betatim/notebook-as-pdf/archive/master.zip
Requirement already satisfied: nbconvert in /usr/local/lib/python3.8/site-packages (from notebook-as-pdf==0.1.0) (5.6.1)
Collecting pyppeteer
Downloading pyppeteer-0.2.2-py3-none-any.whl (145 kB)
Collecting PyPDF2
Downloading PyPDF2-1.26.0.tar.gz (77 kB)
Requirement already satisfied: jinja2>=2.4 in /usr/local/lib/python3.8/site-packages (from nbconvert->notebook-as-pdf==0.1.0) (2.11.2)
Requirement already satisfied: defusedxml in /usr/local/lib/python3.8/site-packages (from nbconvert->notebook-as-pdf==0.1.0) (0.6.0)
Requirement already satisfied: entrypoints>=0.2.2 in /usr/local/lib/python3.8/site-packages (from nbconvert->notebook-as-pdf==0.1.0) (0.3)
Requirement already satisfied: pygments in /usr/local/lib/python3.8/site-packages (from nbconvert->notebook-as-pdf==0.1.0) (2.6.1)
Requirement already satisfied: traitlets>=4.2 in /usr/local/lib/python3.8/site-packages (from nbconvert->notebook-as-pdf==0.1.0) (4.3.3)
Requirement already satisfied: jupyter-core in /usr/local/lib/python3.8/site-packages (from nbconvert->notebook-as-pdf==0.1.0) (4.6.3)
Requirement already satisfied: pandocfilters>=1.4.1 in /usr/local/lib/python3.8/site-packages (from nbconvert->notebook-as-pdf==0.1.0) (1.4.2)
Requirement already satisfied: testpath in /usr/local/lib/python3.8/site-packages (from nbconvert->notebook-as-pdf==0.1.0) (0.4.4)
Requirement already satisfied: bleach in /usr/local/lib/python3.8/site-packages (from nbconvert->notebook-as-pdf==0.1.0) (3.1.5)
Requirement already satisfied: nbformat>=4.4 in /usr/local/lib/python3.8/site-packages (from nbconvert->notebook-as-pdf==0.1.0) (5.0.7)
Requirement already satisfied: mistune<2,>=0.8.1 in /usr/local/lib/python3.8/site-packages (from nbconvert->notebook-as-pdf==0.1.0) (0.8.4)
Collecting websockets<9.0,>=8.1
Downloading websockets-8.1-cp38-cp38-manylinux2010_x86_64.whl (78 kB)
Requirement already satisfied: tqdm<5.0.0,>=4.42.1 in /usr/local/lib/python3.8/site-packages (from pyppeteer->notebook-as-pdf==0.1.0) (4.47.0)
Collecting pyee<8.0.0,>=7.0.1
Downloading pyee-7.0.2-py2.py3-none-any.whl (12 kB)
Collecting urllib3<2.0.0,>=1.25.8
Downloading urllib3-1.25.9-py2.py3-none-any.whl (126 kB)
Collecting appdirs<2.0.0,>=1.4.3
Downloading appdirs-1.4.4-py2.py3-none-any.whl (9.6 kB)
Requirement already satisfied: MarkupSafe>=0.23 in /usr/local/lib/python3.8/site-packages (from jinja2>=2.4->nbconvert->notebook-as-pdf==0.1.0) (1.1.1)
Requirement already satisfied: six in /usr/local/lib/python3.8/site-packages (from traitlets>=4.2->nbconvert->notebook-as-pdf==0.1.0) (1.15.0)
Requirement already satisfied: decorator in /usr/local/lib/python3.8/site-packages (from traitlets>=4.2->nbconvert->notebook-as-pdf==0.1.0) (4.4.2)
Requirement already satisfied: ipython-genutils in /usr/local/lib/python3.8/site-packages (from traitlets>=4.2->nbconvert->notebook-as-pdf==0.1.0) (0.2.0)
Requirement already satisfied: webencodings in /usr/local/lib/python3.8/site-packages (from bleach->nbconvert->notebook-as-pdf==0.1.0) (0.5.1)
Requirement already satisfied: packaging in /usr/local/lib/python3.8/site-packages (from bleach->nbconvert->notebook-as-pdf==0.1.0) (20.4)
Requirement already satisfied: jsonschema!=2.5.0,>=2.4 in /usr/local/lib/python3.8/site-packages (from nbformat>=4.4->nbconvert->notebook-as-pdf==0.1.0) (3.2.0)
Requirement already satisfied: pyparsing>=2.0.2 in /usr/local/lib/python3.8/site-packages (from packaging->bleach->nbconvert->notebook-as-pdf==0.1.0) (2.4.7)
Requirement already satisfied: attrs>=17.4.0 in /usr/local/lib/python3.8/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.4->nbconvert->notebook-as-pdf==0.1.0) (19.3.0)
Requirement already satisfied: pyrsistent>=0.14.0 in /usr/local/lib/python3.8/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.4->nbconvert->notebook-as-pdf==0.1.0) (0.16.0)
Requirement already satisfied: setuptools in /usr/local/lib/python3.8/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.4->nbconvert->notebook-as-pdf==0.1.0) (47.1.1)
Building wheels for collected packages: notebook-as-pdf, PyPDF2
Building wheel for notebook-as-pdf (setup.py): started
Building wheel for notebook-as-pdf (setup.py): finished with status 'done'
Created wheel for notebook-as-pdf: filename=notebook_as_pdf-0.1.0-py3-none-any.whl size=5394 sha256=5437ce2b1946010e4dee232c90eaaf8dc9119a0d7f7c3f41a6b4043ffe4a7a52
Stored in directory: /tmp/pip-ephem-wheel-cache-gmcqdqkf/wheels/db/24/c0/da0bf437e8ab1e0926f6a3554b2f116afa9b8b514d316fe8f0
Building wheel for PyPDF2 (setup.py): started
Building wheel for PyPDF2 (setup.py): finished with status 'done'
Created wheel for PyPDF2: filename=PyPDF2-1.26.0-py3-none-any.whl size=61084 sha256=b7c1da81cedd303618cf3848e67a5554820a1e35817abdbcf27799d002dab605
Stored in directory: /root/.cache/pip/wheels/b1/1a/8f/a4c34be976825a2f7948d0fa40907598d69834f8ab5889de11
Successfully built notebook-as-pdf PyPDF2
Installing collected packages: websockets, pyee, urllib3, appdirs, pyppeteer, PyPDF2, notebook-as-pdf
Successfully installed PyPDF2-1.26.0 appdirs-1.4.4 notebook-as-pdf-0.1.0 pyee-7.0.2 pyppeteer-0.2.2 urllib3-1.25.9 websockets-8.1
Putting back --execute
is still ok after the above.
So then, I moved the installation of notebook-as-pdf
back into requirements.txt
so as to get
Collecting notebook-as-pdf==0.1.0
Downloading notebook_as_pdf-0.1.0-py3-none-any.whl (5.3 kB)
but that generates a
File "/usr/local/lib/python3.8/site-packages/notebook_as_pdf/__init__.py", line 17, in <module>
import pikepdf
File "/usr/local/lib/python3.8/site-packages/pikepdf/__init__.py", line 48, in <module>
from .models import (
File "/usr/local/lib/python3.8/site-packages/pikepdf/models/__init__.py", line 11, in <module>
from .image import PdfImage, PdfInlineImage, UnsupportedImageTypeError
File "/usr/local/lib/python3.8/site-packages/pikepdf/models/image.py", line 17, in <module>
from pikepdf import (
File "/usr/local/lib/python3.8/site-packages/pikepdf/jbig2.py", line 11, in <module>
from PIL import Image
ModuleNotFoundError: No module named 'PIL'
One other thing I tried was to skip the apt-get
step, but that was also not a happy camper (unsurprisingly).
Finally, the PDF coming out the other side is a long single-page document, which is a little hard to navigate. But, of course, that may just be a feature.
Thanks a lot!
The v0.1.0 when you install from master
is because someone (coughcough) forgot to update the contents of the setup.py
so it still shows 0.1.0.
I've added todo items to #12 which should fix the problem you had (--no-sandbox
not being turned on).
The one page PDF is very much a feature 😀 If you don't need to print it, why limit yourself to weird A4 pages with all the "how do we split content across page breaks" problems. If you do want to print the notebook onto paper, you probably need a different extension. For navigation help checkout the stretch goal in #12.
I'll close this now.
Grand. Thanks for helping out someone who's a newb (cough cough).
For navigation help [...]
This is exactly what I had in mind when I asked about it.
I agree that pages are arbitrary, but https://site/file.pdf#page=N
is a staple for me when sharing information, but I wonder if one could make use of a more granular way.
I think if we can make the TOC thing work there will be "destinations" in the PDF. Not sure yet how people would discover their name but it would allow you to link to a heading. I'll keep you posted.
I think if we can make the TOC thing work there will be "destinations" in the PDF. Not sure yet how people would discover their name but it would allow you to link to a heading. I'll keep you posted.
Your comment just crossed my comment in #12.
I installed the 0.3.1 version but i have the same error when i run the commands below
jupyter-nbconvert --to PDFviaHTML histogram.ipynb jupyter-nbconvert --execute --to PDFviaHTML histogram.ipynb
Traceback (most recent call last):
File "/usr/local/bin/jupyter-nbconvert", line 8, in
Error in atexit._run_exitfuncs: Traceback (most recent call last): File "/usr/local/lib/python3.7/dist-packages/pyppeteer/launcher.py", line 151, in _close_process self._loop.run_until_complete(self.killChrome()) File "/usr/lib/python3.7/asyncio/base_events.py", line 562, in run_until_complete self._check_closed() File "/usr/lib/python3.7/asyncio/base_events.py", line 479, in _check_closed raise RuntimeError('Event loop is closed') RuntimeError: Event loop is closed sys:1: RuntimeWarning: coroutine 'Launcher.killChrome' was never awaited RuntimeWarning: Enable tracemalloc to get the object allocation traceback
Did you install the packages listed in https://github.com/betatim/notebook-as-pdf/blob/master/binder/apt.txt ?
If yes, what happens if you run jupyter-nbconvert --PDFExporter.no_sandbox=True --to PDFviaHTML some-notebook.ipynb
?
Yest, it works. I tried to install apt packages but i was getting some errors. Now i am able to install apt packages. Sorry to bother you.
What do you mean with "it works"? Did it start working after you installed the APT packages or after you tried with the no_sandbox
command line flag?
After I installed the apt packages I run the command below and it worked.
jupyter-nbconvert --to PDFviaHTML histogram.ipynb
Thanks for trying out this package and sharing what worked/didn't work :)
I am really excited for this extension, since it would allow a much leaner docker image in my CI runners.
The runner configuration is pretty simple:
and of course,
notebook-as-pdf
is part ofrequirements.txt
.So I took it for a spin, but it was not a happy camper:
I'm wondering if my
requirements.txt
needs something else (why ischromium
installed on demand?) but instead of blindly trying things out, I thought I should report it first.Click to toggle the full log.
```console Running with gitlab-runner 13.0.1 (21cb397c) on default-runner-7f9b6f57bc-t25l7 JXQu29S9 Preparing the "docker" executor 00:06 Using Docker executor with image python:latest ... WARNING: Container based cache volumes creation is disabled. Will not create volume for "/cache" Pulling docker image python:latest ... Using docker image sha256:7f5b6ccd03e9da5e02a20ea4377ae61f6ae1b935b05c1bd52fdafe4b958b5e50 for python:latest ... Preparing environment 00:02 Running on runner-jxqu29s9-project-94480-concurrent-0 via default-runner-7f9b6f57bc-t25l7... Getting source from Git repository 00:02 Fetching changes with git depth set to 50... Initialized empty Git repository in /builds/adavid/mylittlelark/.git/ Created fresh repository. From https://gitlab.cern.ch/adavid/mylittlelark * [new ref] refs/pipelines/1751602 -> refs/pipelines/1751602 * [new branch] master -> origin/master Checking out 48add964 as master... Skipping Git submodules setup Restoring cache 00:01 Downloading artifacts 00:02 Running before_script and script 01:23 $ pip install --no-cache-dir -r requirements.txt Collecting jupyter Downloading jupyter-1.0.0-py2.py3-none-any.whl (2.7 kB) Collecting pympler Downloading Pympler-0.8.tar.gz (175 kB) Collecting lark-parser Downloading lark-parser-0.8.9.tar.gz (294 kB) Collecting tqdm Downloading tqdm-4.46.1-py2.py3-none-any.whl (63 kB) Collecting tables Downloading tables-3.6.1-cp38-cp38-manylinux1_x86_64.whl (4.3 MB) Collecting notebook-as-pdf Downloading notebook_as_pdf-0.2.0-py3-none-any.whl (5.2 kB) Collecting ipywidgets Downloading ipywidgets-7.5.1-py2.py3-none-any.whl (121 kB) Collecting nbconvert Downloading nbconvert-5.6.1-py2.py3-none-any.whl (455 kB) Collecting jupyter-console Downloading jupyter_console-6.1.0-py2.py3-none-any.whl (21 kB) Collecting ipykernel Downloading ipykernel-5.3.0-py3-none-any.whl (119 kB) Collecting notebook Downloading notebook-6.0.3-py3-none-any.whl (9.7 MB) Collecting qtconsole Downloading qtconsole-4.7.5-py2.py3-none-any.whl (118 kB) Collecting numexpr>=2.6.2 Downloading numexpr-2.7.1-cp38-cp38-manylinux1_x86_64.whl (164 kB) Collecting numpy>=1.9.3 Downloading numpy-1.19.0-cp38-cp38-manylinux2010_x86_64.whl (14.6 MB) Collecting pyppeteer Downloading pyppeteer-0.2.2-py3-none-any.whl (145 kB) Collecting PyPDF2 Downloading PyPDF2-1.26.0.tar.gz (77 kB) Collecting widgetsnbextension~=3.5.0 Downloading widgetsnbextension-3.5.1-py2.py3-none-any.whl (2.2 MB) Collecting ipython>=4.0.0; python_version >= "3.3" Downloading ipython-7.16.1-py3-none-any.whl (785 kB) Collecting traitlets>=4.3.1 Downloading traitlets-4.3.3-py2.py3-none-any.whl (75 kB) Collecting nbformat>=4.2.0 Downloading nbformat-5.0.7-py3-none-any.whl (170 kB) Collecting defusedxml Downloading defusedxml-0.6.0-py2.py3-none-any.whl (23 kB) Collecting pygments Downloading Pygments-2.6.1-py3-none-any.whl (914 kB) Collecting jupyter-core Downloading jupyter_core-4.6.3-py2.py3-none-any.whl (83 kB) Collecting entrypoints>=0.2.2 Downloading entrypoints-0.3-py2.py3-none-any.whl (11 kB) Collecting pandocfilters>=1.4.1 Downloading pandocfilters-1.4.2.tar.gz (14 kB) Collecting mistune<2,>=0.8.1 Downloading mistune-0.8.4-py2.py3-none-any.whl (16 kB) Collecting jinja2>=2.4 Downloading Jinja2-2.11.2-py2.py3-none-any.whl (125 kB) Collecting testpath Downloading testpath-0.4.4-py2.py3-none-any.whl (163 kB) Collecting bleach Downloading bleach-3.1.5-py2.py3-none-any.whl (151 kB) Collecting jupyter-client Downloading jupyter_client-6.1.3-py3-none-any.whl (106 kB) Collecting prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0 Downloading prompt_toolkit-3.0.5-py3-none-any.whl (351 kB) Collecting tornado>=4.2 Downloading tornado-6.0.4.tar.gz (496 kB) Collecting pyzmq>=17 Downloading pyzmq-19.0.1-cp38-cp38-manylinux1_x86_64.whl (1.1 MB) Collecting prometheus-client Downloading prometheus_client-0.8.0-py2.py3-none-any.whl (53 kB) Collecting Send2Trash Downloading Send2Trash-1.5.0-py3-none-any.whl (12 kB) Collecting terminado>=0.8.1 Downloading terminado-0.8.3-py2.py3-none-any.whl (33 kB) Collecting ipython-genutils Downloading ipython_genutils-0.2.0-py2.py3-none-any.whl (26 kB) Collecting qtpy Downloading QtPy-1.9.0-py2.py3-none-any.whl (54 kB) Collecting appdirs<2.0.0,>=1.4.3 Downloading appdirs-1.4.4-py2.py3-none-any.whl (9.6 kB) Collecting urllib3<2.0.0,>=1.25.8 Downloading urllib3-1.25.9-py2.py3-none-any.whl (126 kB) Collecting websockets<9.0,>=8.1 Downloading websockets-8.1-cp38-cp38-manylinux2010_x86_64.whl (78 kB) Collecting pyee<8.0.0,>=7.0.1 Downloading pyee-7.0.2-py2.py3-none-any.whl (12 kB) Collecting jedi>=0.10 Downloading jedi-0.17.1-py2.py3-none-any.whl (1.4 MB) Collecting pexpect; sys_platform != "win32" Downloading pexpect-4.8.0-py2.py3-none-any.whl (59 kB) Requirement already satisfied: setuptools>=18.5 in /usr/local/lib/python3.8/site-packages (from ipython>=4.0.0; python_version >= "3.3"->ipywidgets->jupyter->-r requirements.txt (line 1)) (47.1.1) Collecting pickleshare Downloading pickleshare-0.7.5-py2.py3-none-any.whl (6.9 kB) Collecting backcall Downloading backcall-0.2.0-py2.py3-none-any.whl (11 kB) Collecting decorator Downloading decorator-4.4.2-py2.py3-none-any.whl (9.2 kB) Collecting six Downloading six-1.15.0-py2.py3-none-any.whl (10 kB) Collecting jsonschema!=2.5.0,>=2.4 Downloading jsonschema-3.2.0-py2.py3-none-any.whl (56 kB) Collecting MarkupSafe>=0.23 Downloading MarkupSafe-1.1.1-cp38-cp38-manylinux1_x86_64.whl (32 kB) Collecting packaging Downloading packaging-20.4-py2.py3-none-any.whl (37 kB) Collecting webencodings Downloading webencodings-0.5.1-py2.py3-none-any.whl (11 kB) Collecting python-dateutil>=2.1 Downloading python_dateutil-2.8.1-py2.py3-none-any.whl (227 kB) Collecting wcwidth Downloading wcwidth-0.2.5-py2.py3-none-any.whl (30 kB) Collecting ptyprocess; os_name != "nt" Downloading ptyprocess-0.6.0-py2.py3-none-any.whl (39 kB) Collecting parso<0.8.0,>=0.7.0 Downloading parso-0.7.0-py2.py3-none-any.whl (100 kB) Collecting pyrsistent>=0.14.0 Downloading pyrsistent-0.16.0.tar.gz (108 kB) Collecting attrs>=17.4.0 Downloading attrs-19.3.0-py2.py3-none-any.whl (39 kB) Collecting pyparsing>=2.0.2 Downloading pyparsing-2.4.7-py2.py3-none-any.whl (67 kB) Building wheels for collected packages: pympler, lark-parser, PyPDF2, pandocfilters, tornado, pyrsistent Building wheel for pympler (setup.py): started Building wheel for pympler (setup.py): finished with status 'done' Created wheel for pympler: filename=Pympler-0.8-py3-none-any.whl size=164713 sha256=3e8ab23edf19d99c51f5b7a9a1bf74ebbb9f947a6d9ebade2ff8c0a7ad75083f Stored in directory: /tmp/pip-ephem-wheel-cache-pivp50fy/wheels/2c/09/38/7c8c5dc224099d3a7194d154a99093d429bb4bda18c241c4b5 Building wheel for lark-parser (setup.py): started Building wheel for lark-parser (setup.py): finished with status 'done' Created wheel for lark-parser: filename=lark_parser-0.8.9-py2.py3-none-any.whl size=75357 sha256=990a32661454b7b77d1df1858328ea40daa9bac5ce84bebc0be6cb43a5246b33 Stored in directory: /tmp/pip-ephem-wheel-cache-pivp50fy/wheels/5c/55/8c/91a8363366ada1c946e50d5c030e63129a2d8f3120e1975997 Building wheel for PyPDF2 (setup.py): started Building wheel for PyPDF2 (setup.py): finished with status 'done' Created wheel for PyPDF2: filename=PyPDF2-1.26.0-py3-none-any.whl size=61084 sha256=b1f7402d283104baebace712c6dd94abb940019a8acd38feaf5903eb11954f19 Stored in directory: /tmp/pip-ephem-wheel-cache-pivp50fy/wheels/b1/1a/8f/a4c34be976825a2f7948d0fa40907598d69834f8ab5889de11 Building wheel for pandocfilters (setup.py): started Building wheel for pandocfilters (setup.py): finished with status 'done' Created wheel for pandocfilters: filename=pandocfilters-1.4.2-py3-none-any.whl size=7856 sha256=75791b53889332212a9cbf41d5ba54a30932ae76bec3902bc753298f58305841 Stored in directory: /tmp/pip-ephem-wheel-cache-pivp50fy/wheels/f6/08/65/e4636b703d0e870cd62692dafd6b47db27287fe80cea433722 Building wheel for tornado (setup.py): started Building wheel for tornado (setup.py): finished with status 'done' Created wheel for tornado: filename=tornado-6.0.4-cp38-cp38-linux_x86_64.whl size=427821 sha256=978cecc354d37b4422e9f08fe5949afad94728628d849b74d1c6870ac25c0171 Stored in directory: /tmp/pip-ephem-wheel-cache-pivp50fy/wheels/88/79/e5/598ba17e85eccf2626eab62e4ee8452895636cd542650d450d Building wheel for pyrsistent (setup.py): started Building wheel for pyrsistent (setup.py): finished with status 'done' Created wheel for pyrsistent: filename=pyrsistent-0.16.0-cp38-cp38-linux_x86_64.whl size=126675 sha256=87e75b33c767b74b59c2ae526d335a2be64aab5cf3b983c519171a6aaceff172 Stored in directory: /tmp/pip-ephem-wheel-cache-pivp50fy/wheels/17/be/0f/727fb20889ada6aaaaba861f5f0eb21663533915429ad43f28 Successfully built pympler lark-parser PyPDF2 pandocfilters tornado pyrsistent Installing collected packages: six, python-dateutil, tornado, ipython-genutils, decorator, traitlets, jupyter-core, pyzmq, jupyter-client, MarkupSafe, jinja2, defusedxml, pygments, entrypoints, pandocfilters, mistune, testpath, pyrsistent, attrs, jsonschema, nbformat, pyparsing, packaging, webencodings, bleach, nbconvert, parso, jedi, ptyprocess, pexpect, pickleshare, backcall, wcwidth, prompt-toolkit, ipython, ipykernel, prometheus-client, Send2Trash, terminado, notebook, widgetsnbextension, ipywidgets, jupyter-console, qtpy, qtconsole, jupyter, pympler, lark-parser, tqdm, numpy, numexpr, tables, appdirs, urllib3, websockets, pyee, pyppeteer, PyPDF2, notebook-as-pdf Successfully installed MarkupSafe-1.1.1 PyPDF2-1.26.0 Send2Trash-1.5.0 appdirs-1.4.4 attrs-19.3.0 backcall-0.2.0 bleach-3.1.5 decorator-4.4.2 defusedxml-0.6.0 entrypoints-0.3 ipykernel-5.3.0 ipython-7.16.1 ipython-genutils-0.2.0 ipywidgets-7.5.1 jedi-0.17.1 jinja2-2.11.2 jsonschema-3.2.0 jupyter-1.0.0 jupyter-client-6.1.3 jupyter-console-6.1.0 jupyter-core-4.6.3 lark-parser-0.8.9 mistune-0.8.4 nbconvert-5.6.1 nbformat-5.0.7 notebook-6.0.3 notebook-as-pdf-0.2.0 numexpr-2.7.1 numpy-1.19.0 packaging-20.4 pandocfilters-1.4.2 parso-0.7.0 pexpect-4.8.0 pickleshare-0.7.5 prometheus-client-0.8.0 prompt-toolkit-3.0.5 ptyprocess-0.6.0 pyee-7.0.2 pygments-2.6.1 pympler-0.8 pyparsing-2.4.7 pyppeteer-0.2.2 pyrsistent-0.16.0 python-dateutil-2.8.1 pyzmq-19.0.1 qtconsole-4.7.5 qtpy-1.9.0 six-1.15.0 tables-3.6.1 terminado-0.8.3 testpath-0.4.4 tornado-6.0.4 tqdm-4.46.1 traitlets-4.3.3 urllib3-1.25.9 wcwidth-0.2.5 webencodings-0.5.1 websockets-8.1 widgetsnbextension-3.5.1 $ jupyter nbconvert --to html --execute example.ipynb [NbConvertApp] Converting notebook example.ipynb to html [NbConvertApp] Executing notebook with kernel: python3 [NbConvertApp] Writing 342781 bytes to example.html $ jupyter nbconvert --to PDFviaHTML --execute example.ipynb [NbConvertApp] Converting notebook example.ipynb to PDFviaHTML [NbConvertApp] Executing notebook with kernel: python3 [NbConvertApp] Executing notebook with kernel: python3 [W:pyppeteer.chromium_downloader] start chromium download. Download may take a few minutes. 100%|██████████| 108773488/108773488 [00:01<00:00, 105172481.75it/s] [W:pyppeteer.chromium_downloader] chromium download done. [W:pyppeteer.chromium_downloader] chromium extracted to: /root/.local/share/pyppeteer/local-chromium/588429 Traceback (most recent call last): File "/usr/local/bin/jupyter-nbconvert", line 8, in