voila-dashboards / voici

Voici turns any Jupyter Notebook into a static web application
https://voici.readthedocs.io/
Other
156 stars 9 forks source link

Output notebook stuck at running #103

Closed robertritz closed 8 months ago

robertritz commented 9 months ago

Description

I'm trying a very small example to see how voici works and I'm not able to get a basic notebook to render. After running the voici command I just see "Running" on the resulting output.

Reproduce

I created a very simple notebook that reads a small CSV file and makes a simple plot using the built in Pandas plotting tool (which uses Matplotlib).

I placed the notebook and the CSV file in a folder called test, then ran this command from the folder above test:

voici build --contents test

After launching the web server with python -m http.server 8000 --directory _output I click on the notebook. It is stuck on the Running... screen.

I'm really not sure what is going on here.

Context

trungleduc commented 9 months ago

Hi, could you open the console log of your browser and post the error log here?

robertritz commented 9 months ago

Here is the console log. Thanks for the fast response.

[:]-1702640936468.log

Also I've added a picture of the output.

image

Also for completeness here is the environment.yml for this environment.

name: perspective
channels:
  - conda-forge
  - defaults
dependencies:
  - aiofiles=22.1.0=pyhd8ed1ab_0
  - aiosqlite=0.19.0=pyhd8ed1ab_0
  - anyio=4.1.0=pyhd8ed1ab_0
  - appnope=0.1.3=pyhd8ed1ab_0
  - argon2-cffi=23.1.0=pyhd8ed1ab_0
  - argon2-cffi-bindings=21.2.0=py311h80987f9_0
  - arrow=1.3.0=pyhd8ed1ab_0
  - asttokens=2.4.1=pyhd8ed1ab_0
  - attrs=23.1.0=pyh71513ae_1
  - babel=2.14.0=pyhd8ed1ab_0
  - beautifulsoup4=4.12.2=pyha770c72_0
  - blas=2.120=openblas
  - blas-devel=3.9.0=20_osxarm64_openblas
  - bleach=6.1.0=pyhd8ed1ab_0
  - bottleneck=1.3.5=py311ha0d4635_0
  - brotli=1.1.0=hb547adb_1
  - brotli-bin=1.1.0=hb547adb_1
  - bzip2=1.0.8=h620ffc9_4
  - ca-certificates=2023.11.17=hf0a4a13_0
  - cached-property=1.5.2=hd8ed1ab_1
  - cached_property=1.5.2=pyha770c72_1
  - certifi=2023.11.17=pyhd8ed1ab_0
  - cffi=1.16.0=py311h80987f9_0
  - charset-normalizer=3.3.2=pyhd8ed1ab_0
  - cloudpickle=3.0.0=pyhd8ed1ab_0
  - comm=0.1.4=pyhd8ed1ab_0
  - contourpy=1.2.0=py311h48ca7d4_0
  - cycler=0.12.1=pyhd8ed1ab_0
  - debugpy=1.6.7=py311h313beb8_0
  - decorator=5.1.1=pyhd8ed1ab_0
  - defusedxml=0.7.1=pyhd8ed1ab_0
  - doit=0.36.0=pyhd8ed1ab_0
  - entrypoints=0.4=pyhd8ed1ab_0
  - exceptiongroup=1.2.0=pyhd8ed1ab_0
  - executing=2.0.1=pyhd8ed1ab_0
  - fonttools=4.25.0=pyhd3eb1b0_0
  - fqdn=1.5.1=pyhd8ed1ab_0
  - freetype=2.10.4=h17b34a0_1
  - giflib=5.2.1=h1a8c8d9_3
  - idna=3.6=pyhd8ed1ab_0
  - importlib-metadata=7.0.0=pyha770c72_0
  - importlib_metadata=7.0.0=hd8ed1ab_0
  - importlib_resources=6.1.1=pyhd8ed1ab_0
  - ipykernel=6.26.0=pyh3cd1d5f_0
  - ipython=8.18.1=pyh707e725_3
  - ipython_genutils=0.2.0=py_1
  - isoduration=20.11.0=pyhd8ed1ab_0
  - jedi=0.19.1=pyhd8ed1ab_0
  - jinja2=3.1.2=pyhd8ed1ab_1
  - jpeg=9e=h1a8c8d9_3
  - json5=0.9.14=pyhd8ed1ab_0
  - jsonpointer=2.0=py_0
  - jsonschema=4.20.0=pyhd8ed1ab_0
  - jsonschema-specifications=2023.11.2=pyhd8ed1ab_0
  - jsonschema-with-format-nongpl=4.20.0=pyhd8ed1ab_0
  - jupyter_client=8.6.0=pyhd8ed1ab_0
  - jupyter_core=5.5.0=py311hca03da5_0
  - jupyter_events=0.9.0=pyhd8ed1ab_0
  - jupyter_server=2.12.1=pyhd8ed1ab_0
  - jupyter_server_fileid=0.9.0=pyhd8ed1ab_0
  - jupyter_server_terminals=0.5.0=pyhd8ed1ab_0
  - jupyter_server_ydoc=0.8.0=pyhd8ed1ab_0
  - jupyter_ydoc=0.2.4=pyhd8ed1ab_0
  - jupyterlab=3.6.6=pyhd8ed1ab_0
  - jupyterlab_pygments=0.3.0=pyhd8ed1ab_0
  - jupyterlab_server=2.25.2=pyhd8ed1ab_0
  - jupyterlite-core=0.2.1=pyhd8ed1ab_0
  - kiwisolver=1.4.4=py311h313beb8_0
  - lcms2=2.12=had6a04f_0
  - libblas=3.9.0=20_osxarm64_openblas
  - libbrotlicommon=1.1.0=hb547adb_1
  - libbrotlidec=1.1.0=hb547adb_1
  - libbrotlienc=1.1.0=hb547adb_1
  - libcblas=3.9.0=20_osxarm64_openblas
  - libcxx=16.0.6=h4653b0c_0
  - libffi=3.4.4=hca03da5_0
  - libgfortran=5.0.0=13_2_0_hd922786_1
  - libgfortran5=13.2.0=hf226fd6_1
  - liblapack=3.9.0=20_osxarm64_openblas
  - liblapacke=3.9.0=20_osxarm64_openblas
  - libopenblas=0.3.25=openmp_h6c19121_0
  - libpng=1.6.37=hf7e6567_2
  - libsodium=1.0.18=h27ca646_1
  - libtiff=4.2.0=hc6122e1_3
  - libwebp=1.2.0=h45627a8_0
  - libwebp-base=1.2.0=h27ca646_2
  - llvm-openmp=17.0.6=hcd81f8e_0
  - lz4-c=1.9.3=hbdafb3b_1
  - markupsafe=2.1.1=py311h80987f9_0
  - matplotlib=3.8.0=py311ha1ab1f8_2
  - matplotlib-base=3.8.0=py311h7aedaa7_0
  - matplotlib-inline=0.1.6=pyhd8ed1ab_0
  - mistune=3.0.2=pyhd8ed1ab_0
  - munkres=1.1.4=pyh9f0ad1d_0
  - nbclassic=1.0.0=pyhb4ecaf3_1
  - nbclient=0.7.4=pyhd8ed1ab_0
  - nbconvert=7.12.0=pyhd8ed1ab_0
  - nbconvert-core=7.12.0=pyhd8ed1ab_0
  - nbconvert-pandoc=7.12.0=pyhd8ed1ab_0
  - nbformat=5.9.2=pyhd8ed1ab_0
  - ncurses=6.4=h313beb8_0
  - nest-asyncio=1.5.8=pyhd8ed1ab_0
  - notebook=6.5.4=pyha770c72_0
  - notebook-shim=0.2.3=pyhd8ed1ab_0
  - numexpr=2.8.7=py311h6dc990b_0
  - numpy=1.26.2=py311he598dae_0
  - numpy-base=1.26.2=py311hfbfe69c_0
  - openblas=0.3.25=openmp_h55c453e_0
  - openssl=3.2.0=h0d3ecfb_1
  - overrides=7.4.0=pyhd8ed1ab_0
  - packaging=23.2=pyhd8ed1ab_0
  - pandas=2.1.4=py311h7aedaa7_0
  - pandoc=3.1.3=hce30654_0
  - pandocfilters=1.5.0=pyhd8ed1ab_0
  - parso=0.8.3=pyhd8ed1ab_0
  - pexpect=4.8.0=pyh1a96a4e_2
  - pickleshare=0.7.5=py_1003
  - pillow=9.4.0=py311h313beb8_0
  - pip=23.3.1=py311hca03da5_0
  - pkgutil-resolve-name=1.3.10=pyhd8ed1ab_1
  - platformdirs=4.1.0=pyhd8ed1ab_0
  - plotly=5.18.0=pyhd8ed1ab_0
  - prometheus_client=0.19.0=pyhd8ed1ab_0
  - prompt-toolkit=3.0.42=pyha770c72_0
  - psutil=5.9.0=py311h80987f9_0
  - ptyprocess=0.7.0=pyhd3deb0d_0
  - pure_eval=0.2.2=pyhd8ed1ab_0
  - pycparser=2.21=pyhd8ed1ab_0
  - pygments=2.17.2=pyhd8ed1ab_0
  - pyparsing=3.0.9=pyhd8ed1ab_0
  - python=3.11.5=hb885b13_0
  - python-dateutil=2.8.2=pyhd8ed1ab_0
  - python-fastjsonschema=2.19.0=pyhd8ed1ab_0
  - python-json-logger=2.0.7=pyhd8ed1ab_0
  - python-tzdata=2023.3=pyhd8ed1ab_0
  - python_abi=3.11=2_cp311
  - pytz=2023.3.post1=pyhd8ed1ab_0
  - pyyaml=6.0.1=py311h80987f9_0
  - pyzmq=25.1.0=py311h313beb8_0
  - readline=8.2=h1a28f6b_0
  - referencing=0.32.0=pyhd8ed1ab_0
  - requests=2.31.0=pyhd8ed1ab_0
  - rfc3339-validator=0.1.4=pyhd8ed1ab_0
  - rfc3986-validator=0.1.1=pyh9f0ad1d_0
  - rpds-py=0.10.6=py311hf0e4da2_0
  - send2trash=1.8.2=py311hca03da5_0
  - setuptools=68.2.2=py311hca03da5_0
  - six=1.16.0=pyh6c4a22f_0
  - sniffio=1.3.0=pyhd8ed1ab_0
  - soupsieve=2.5=pyhd8ed1ab_1
  - sqlite=3.41.2=h80987f9_0
  - stack_data=0.6.2=pyhd8ed1ab_0
  - tenacity=8.2.3=pyhd8ed1ab_0
  - terminado=0.18.0=pyh31c8845_0
  - tinycss2=1.2.1=pyhd8ed1ab_0
  - tk=8.6.12=hb8d0fd4_0
  - tomli=2.0.1=pyhd8ed1ab_0
  - tornado=6.3.3=py311h80987f9_0
  - traitlets=5.9.0=pyhd8ed1ab_0
  - types-python-dateutil=2.8.19.14=pyhd8ed1ab_0
  - typing-extensions=4.9.0=hd8ed1ab_0
  - typing_extensions=4.9.0=pyha770c72_0
  - typing_utils=0.1.0=pyhd8ed1ab_0
  - tzdata=2023c=h04d1e81_0
  - uri-template=1.3.0=pyhd8ed1ab_0
  - urllib3=2.1.0=py311hca03da5_0
  - voici=0.5.0=pyhd8ed1ab_0
  - voila=0.5.5=pyhd8ed1ab_0
  - wcwidth=0.2.12=pyhd8ed1ab_0
  - webcolors=1.13=pyhd8ed1ab_0
  - webencodings=0.5.1=pyhd8ed1ab_2
  - websocket-client=1.7.0=pyhd8ed1ab_0
  - websockets=10.4=py311h80987f9_1
  - wheel=0.41.2=py311hca03da5_0
  - xz=5.4.5=h80987f9_0
  - y-py=0.5.9=py311ha6e5c4f_0
  - yaml=0.2.5=h3422bc3_2
  - ypy-websocket=0.8.2=pyhd8ed1ab_0
  - zeromq=4.3.5=h965bd2d_0
  - zipp=3.17.0=pyhd8ed1ab_0
  - zlib=1.2.13=h5a0b063_0
  - zstd=1.5.0=h861e0a7_0
prefix: /Users/ritz/miniconda3/envs/perspective
trungleduc commented 9 months ago

There are 2 issues:

jtpio commented 9 months ago

"Service worker not supported in this browser" -> voici uses service worker to get access to your CSV file.

Expanding a bit on this: Service Worker might not be available in some situations, such as in a Firefox Private window. Some of these limitations are currently known and listed here: https://jupyterlite.readthedocs.io/en/stable/howto/configure/advanced/service-worker.html#limitations

trungleduc commented 8 months ago

This should be fixed in 0.6.0. Please feel free to re-open if needed.