Open tyannalaq opened 2 years ago
Hi @tyxnna! Which version of voila and voila-gridstack are you using?
The problem seems to be that voila can't find the voila-gridstack template. See jinja2.exceptions.TemplateNotFound: index.html.j2
hi @hbcarlos , uh this might be a very dumb question but how do i check the versions?
No, it is not! You can run pip list | grep voila
.
(base) C:\Users\tyann>voila FYP0315.ipynb --template=gridstack
And If I may give you a small tip, you should not use your base env.
i just managed to check the voila version with pip list and it's 0.2.16, thanks for the tip! but how do i change the env and what should i change it to ?
That's great! I recommend you to create a new environment and install voila-gridstack there. The best way would be by running the following commands.
# Create a new environment
conda create -n env_name -c conda-forge voila-gridstack
# Activate your environment
conda activate env_name
If you are using other libraries in your notebook like IPyWidgets, pandas, matplotlib, numpy, etc. You can add them to the create command as follows:
# Create a new environment
conda create -n env_name -c conda-forge voila-gridstack IPyWidgets pandas matplotlib numpy
# Activate your environment
conda activate env_name
or install them later as follows
# Create a new environment
conda create -n env_name -c conda-forge voila-gridstack
# Activate your environment
conda activate env_name
# install more packages
conda install -c conda-forge IPyWidgets pandas matplotlib numpy
hi ! i've created a new environment, activated and downloaded packages:
The following packages will be downloaded:
package | build
---------------------------|-----------------
brotli-1.0.9 | h8ffe710_6 18 KB conda-forge
brotli-bin-1.0.9 | h8ffe710_6 21 KB conda-forge
certifi-2021.10.8 | py39hcbf5309_1 145 KB conda-forge
cycler-0.11.0 | pyhd8ed1ab_0 10 KB conda-forge
fonttools-4.30.0 | py39hb82d6ee_0 1.5 MB conda-forge
freetype-2.10.4 | h546665d_1 489 KB conda-forge
icu-68.2 | h0e60522_0 16.4 MB conda-forge
intel-openmp-2022.0.0 | h57928b3_3663 3.6 MB conda-forge
jbig-2.1 | h8d14728_2003 45 KB conda-forge
jpeg-9e | h8ffe710_0 373 KB conda-forge
kiwisolver-1.4.0 | py39h2e07f2f_0 58 KB conda-forge
lcms2-2.12 | h2a16943_0 882 KB conda-forge
lerc-3.0 | h0e60522_0 140 KB conda-forge
libblas-3.9.0 | 13_win64_mkl 5.3 MB conda-forge
libbrotlicommon-1.0.9 | h8ffe710_6 67 KB conda-forge
libbrotlidec-1.0.9 | h8ffe710_6 33 KB conda-forge
libbrotlienc-1.0.9 | h8ffe710_6 721 KB conda-forge
libcblas-3.9.0 | 13_win64_mkl 5.3 MB conda-forge
libclang-11.1.0 |default_h5c34c98_1 20.8 MB conda-forge
libdeflate-1.10 | h8ffe710_0 69 KB conda-forge
liblapack-3.9.0 | 13_win64_mkl 5.3 MB conda-forge
libpng-1.6.37 | h1d00b33_2 724 KB conda-forge
libtiff-4.3.0 | hc4061b1_3 1.1 MB conda-forge
libwebp-1.2.2 | h57928b3_0 11 KB conda-forge
libwebp-base-1.2.2 | h8ffe710_1 393 KB conda-forge
libxcb-1.13 | hcd874cb_1004 1.3 MB conda-forge
lz4-c-1.9.3 | h8ffe710_1 135 KB conda-forge
m2w64-gcc-libgfortran-5.3.0| 6 342 KB conda-forge
m2w64-gcc-libs-5.3.0 | 7 520 KB conda-forge
m2w64-gcc-libs-core-5.3.0 | 7 214 KB conda-forge
m2w64-gmp-6.1.0 | 2 726 KB conda-forge
m2w64-libwinpthread-git-5.0.0.4634.697f757| 2 31 KB conda-forge
matplotlib-3.5.1 | py39hcbf5309_0 7 KB conda-forge
matplotlib-base-3.5.1 | py39h581301d_0 7.3 MB conda-forge
mkl-2022.0.0 | h0e2418a_796 181.9 MB conda-forge
msys2-conda-epoch-20160418 | 1 3 KB conda-forge
munkres-1.1.4 | pyh9f0ad1d_0 12 KB conda-forge
numpy-1.22.3 | py39h6331f09_0 6.1 MB conda-forge
openjpeg-2.4.0 | hb211442_1 238 KB conda-forge
openssl-1.1.1l | h8ffe710_0 5.7 MB conda-forge
pandas-1.4.1 | py39h2e25243_0 11.0 MB conda-forge
pillow-9.0.1 | py39ha53f419_2 44.7 MB conda-forge
plotly-5.6.0 | pyhd8ed1ab_0 6.9 MB conda-forge
pthread-stubs-0.4 | hcd874cb_1001 6 KB conda-forge
pyqt-5.12.3 | py39hcbf5309_8 22 KB conda-forge
pyqt-impl-5.12.3 | py39h415ef7b_8 4.3 MB conda-forge
pyqt5-sip-4.19.18 | py39h415ef7b_8 299 KB conda-forge
pyqtchart-5.12 | py39h415ef7b_8 212 KB conda-forge
pyqtwebengine-5.12.1 | py39h415ef7b_8 143 KB conda-forge
python-3.9.10 |h9a09f29_2_cpython 17.3 MB conda-forge
pytz-2021.3 | pyhd8ed1ab_0 242 KB conda-forge
qt-5.12.9 | h5909a2a_4 106.1 MB conda-forge
tbb-2021.5.0 | h2d74725_0 148 KB conda-forge
tenacity-8.0.1 | pyhd8ed1ab_0 21 KB conda-forge
unicodedata2-14.0.0 | py39hb82d6ee_0 493 KB conda-forge
wordcloud-1.8.1 | py39hb82d6ee_2 196 KB conda-forge
xorg-libxau-1.0.9 | hcd874cb_0 57 KB conda-forge
xorg-libxdmcp-1.1.3 | hcd874cb_0 66 KB conda-forge
zlib-1.2.11 | h8ffe710_1013 106 KB conda-forge
zstd-1.5.2 | h6255e5f_0 1010 KB conda-forge
------------------------------------------------------------
Total: 460.9 MB
The following NEW packages will be INSTALLED:
brotli conda-forge/win-64::brotli-1.0.9-h8ffe710_6 brotli-bin conda-forge/win-64::brotli-bin-1.0.9-h8ffe710_6 certifi conda-forge/win-64::certifi-2021.10.8-py39hcbf5309_1 cycler conda-forge/noarch::cycler-0.11.0-pyhd8ed1ab_0 fonttools conda-forge/win-64::fonttools-4.30.0-py39hb82d6ee_0 freetype conda-forge/win-64::freetype-2.10.4-h546665d_1 icu conda-forge/win-64::icu-68.2-h0e60522_0 intel-openmp conda-forge/win-64::intel-openmp-2022.0.0-h57928b3_3663 jbig conda-forge/win-64::jbig-2.1-h8d14728_2003 jpeg conda-forge/win-64::jpeg-9e-h8ffe710_0 kiwisolver conda-forge/win-64::kiwisolver-1.4.0-py39h2e07f2f_0 lcms2 conda-forge/win-64::lcms2-2.12-h2a16943_0 lerc conda-forge/win-64::lerc-3.0-h0e60522_0 libblas conda-forge/win-64::libblas-3.9.0-13_win64_mkl libbrotlicommon conda-forge/win-64::libbrotlicommon-1.0.9-h8ffe710_6 libbrotlidec conda-forge/win-64::libbrotlidec-1.0.9-h8ffe710_6 libbrotlienc conda-forge/win-64::libbrotlienc-1.0.9-h8ffe710_6 libcblas conda-forge/win-64::libcblas-3.9.0-13_win64_mkl libclang conda-forge/win-64::libclang-11.1.0-default_h5c34c98_1 libdeflate conda-forge/win-64::libdeflate-1.10-h8ffe710_0 liblapack conda-forge/win-64::liblapack-3.9.0-13_win64_mkl libpng conda-forge/win-64::libpng-1.6.37-h1d00b33_2 libtiff conda-forge/win-64::libtiff-4.3.0-hc4061b1_3 libwebp conda-forge/win-64::libwebp-1.2.2-h57928b3_0 libwebp-base conda-forge/win-64::libwebp-base-1.2.2-h8ffe710_1 libxcb conda-forge/win-64::libxcb-1.13-hcd874cb_1004 lz4-c conda-forge/win-64::lz4-c-1.9.3-h8ffe710_1 m2w64-gcc-libgfor~ conda-forge/win-64::m2w64-gcc-libgfortran-5.3.0-6 m2w64-gcc-libs conda-forge/win-64::m2w64-gcc-libs-5.3.0-7 m2w64-gcc-libs-co~ conda-forge/win-64::m2w64-gcc-libs-core-5.3.0-7 m2w64-gmp conda-forge/win-64::m2w64-gmp-6.1.0-2 m2w64-libwinpthre~ conda-forge/win-64::m2w64-libwinpthread-git-5.0.0.4634.697f757-2 matplotlib conda-forge/win-64::matplotlib-3.5.1-py39hcbf5309_0 matplotlib-base conda-forge/win-64::matplotlib-base-3.5.1-py39h581301d_0 mkl conda-forge/win-64::mkl-2022.0.0-h0e2418a_796 msys2-conda-epoch conda-forge/win-64::msys2-conda-epoch-20160418-1 munkres conda-forge/noarch::munkres-1.1.4-pyh9f0ad1d_0 numpy conda-forge/win-64::numpy-1.22.3-py39h6331f09_0 openjpeg conda-forge/win-64::openjpeg-2.4.0-hb211442_1 pandas conda-forge/win-64::pandas-1.4.1-py39h2e25243_0 pillow conda-forge/win-64::pillow-9.0.1-py39ha53f419_2 plotly conda-forge/noarch::plotly-5.6.0-pyhd8ed1ab_0 pthread-stubs conda-forge/win-64::pthread-stubs-0.4-hcd874cb_1001 pyqt conda-forge/win-64::pyqt-5.12.3-py39hcbf5309_8 pyqt-impl conda-forge/win-64::pyqt-impl-5.12.3-py39h415ef7b_8 pyqt5-sip conda-forge/win-64::pyqt5-sip-4.19.18-py39h415ef7b_8 pyqtchart conda-forge/win-64::pyqtchart-5.12-py39h415ef7b_8 pyqtwebengine conda-forge/win-64::pyqtwebengine-5.12.1-py39h415ef7b_8 pytz conda-forge/noarch::pytz-2021.3-pyhd8ed1ab_0 qt conda-forge/win-64::qt-5.12.9-h5909a2a_4 tbb conda-forge/win-64::tbb-2021.5.0-h2d74725_0 tenacity conda-forge/noarch::tenacity-8.0.1-pyhd8ed1ab_0 unicodedata2 conda-forge/win-64::unicodedata2-14.0.0-py39hb82d6ee_0 wordcloud conda-forge/win-64::wordcloud-1.8.1-py39hb82d6ee_2 xorg-libxau conda-forge/win-64::xorg-libxau-1.0.9-hcd874cb_0 xorg-libxdmcp conda-forge/win-64::xorg-libxdmcp-1.1.3-hcd874cb_0 zlib conda-forge/win-64::zlib-1.2.11-h8ffe710_1013 zstd conda-forge/win-64::zstd-1.5.2-h6255e5f_0
The following packages will be DOWNGRADED:
openssl 3.0.0-h8ffe710_2 --> 1.1.1l-h8ffe710_0 python 3.9.10-hcf16a7b_2_cpython --> 3.9.10-h9a09f29_2_cpython
Preparing transaction: done Verifying transaction: done Executing transaction: done
i tried running it again but i got this:
(env_name) C:\Users\tyann>voila FYP0315.ipynb --template=gridstack [Voila] Using C:\Users\tyann\AppData\Local\Temp to store connection files [Voila] Storing connection files in C:\Users\tyann\AppData\Local\Temp\voila_zwl5jhmg. [Voila] Serving static files from C:\Users\tyann\anaconda3\envs\env_name\lib\site-packages\voila\static. [Voila] Voilà is running at: http://localhost:8866/ [Voila] WARNING | Notebook FYP0315.ipynb is not trusted [Voila] WARNING | Native kernel (python3) is not available WARNING:tornado.general:500 GET / (::1): No Jupyter kernel for language 'python' found ERROR:tornado.access:500 GET / (::1) 3119.60ms
@tyxnna you need to install ipykernel
in your new environment:
conda install ipykernel
That's right, I forgot the kernel. Thanks, @trungleduc!
thank you so much @hbcarlos and @trungleduc it's working now! for future reference, may i know WHY this problem occurred and how did changing the environment help?
also a little irrelevant to the topic but 1) is there a way to choose specific cells to be shown in voila? say if i don't want anything else to show except the plots? 2) can i readjust the plots to show the full plot instead of having to scroll like the attached photo?
Hi @tyxnna! I'm happy to hear that everything works now.
The issue was that voila-gristack was not installed.
is there a way to choose specific cells to be shown in voila? say if i don't want anything else to show except the plots? can i readjust the plots to show the full plot instead of having to scroll like the attached photo?
Using Voila-Gridstack you can select which cells you want to show, and which order. To remove the scroll bar you need to resize the cell from the JupyterLab extension. There is a small screencast here about the voila-gridstack extension for JupyterLab that could be useful.
i've managed to resize and rearrange the cells but i can't seem to be able to choose which cells to show and remove from the view. for example (see attached pic), is it possible to remove these dataframes from the view? currently, i can minimize them but not completely remove
Hi @tyxnna. It looks like it could be a bug.
Each cell on the GridStack Editor should have a toolbar with a trash can to remove them. I can see the toolbar but it is empty.
Could you run these commands in your environment and post the output? I need to know which versions are you using.
pip list | grep voila
and pip list | grep jupyter
.
FYI I transferred the issue to the voila-gridstack
repo since the discussion is mostly around it.
I am having similar problems with Voila gridstack and jupyter lab, in which the icons and the grid layout does not appear as options in toolbar and cannot be edited. Tried the new environment approach, same thing. running the commands above I get:
pip list | grep voila voila 0.4.3 voila-gridstack 0.3.1 voila_topbar 0.1.1
pip list | grep jupyter jupyter_client 8.5.0 jupyter_core 5.4.0 jupyter-events 0.8.0 jupyter-lsp 2.2.0 jupyter_server 2.9.1 jupyter_server_terminals 0.4.4 jupyterlab 4.0.7 jupyterlab-pygments 0.2.2 jupyterlab_server 2.25.0 jupyterlab-widgets 3.0.9
Can you help me to get gridstack editor to function properly in jupyter lab please ?
can you upgrade to voila
0.5.x?
ok, just done that, thanks, but the following error appeared:
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts. voila-gridstack 0.3.1 requires voila<0.5.0,>=0.2.0, but you have voila 0.5.3 which is incompatible.
and nothing has changed from previous statement.
have updated both to newest versions, here's the labextension output.
jupyter labextension list
JupyterLab v4.0.7 /Library/Frameworks/Python.framework/Versions/3.12/share/jupyter/labextensions jupyterlab_pygments v0.2.2 enabled X (python, jupyterlab_pygments) @jupyter-notebook/lab-extension v7.0.6 enabled OK @voila-dashboards/jupyterlab-preview v2.2.0 enabled X (python, voila) @voila-dashboards/jupyterlab-gridstack v0.4.0-a0 enabled X (python, voila-gridstack) @jupyter-widgets/jupyterlab-manager v5.0.9 enabled OK (python, jupyterlab_widgets)
The following extensions are outdated: jupyterlab_pygments @voila-dashboards/jupyterlab-preview @voila-dashboards/jupyterlab-gridstack
Consider checking if an update is available for these packages.
but when doing the below, it returns old version...weird
pip list | grep voila
voila 0.4.3
voila-gridstack 0.4.0a0
pip list | grep jupyter
jupyter_client 8.5.0
jupyter_core 5.4.0
jupyter-events 0.8.0
jupyter-lsp 2.2.0
jupyter_server 2.9.1
jupyter_server_terminals 0.4.4
jupyterlab 4.0.7
jupyterlab-pygments 0.2.2
jupyterlab_server 2.25.0
jupyterlab-widgets 3.0.9
in the meantime, how can I run the gridstack in edit mode please ? I can run the gridstack as template and passing the --VoilaConfiguration.resources="{'gridstack': {'show_handles': True}}" I can resize (but not delete), however, it does not save, returning to original every refresh. I have several notebooks already coded for voila/ipywidgets format (interactive etc.) and will be a pain right now (not talking about time) to switch for other option, such as panel or mercury. I need to be able to complete the dashboards please. your help is much appreciated
Can you create a new environment with the correct version number: voila 0.4, jupyterlab 3 and voila-gridstack 0.3.1 then try again?
it'll be easier to detect the issue if you can create a new issue and fill the template.
I have done the following steps: 1) downgraded python to 3.8.0 version 2) created the virtual environment 3) installed the required versions as suggested above
the issue is not resolved.
observations: 1) I can see the gridstack icon within jupyter lab, however, it neither resizes nor saves the layout when changed. 2) when launching gridstack from terminal it stacks automatically, with all widgets/markups 3) passing the option handles (from terminal) mentioned above, it works the same way as reported. It is not possible to delete any grid panel and once refreshed, it resets everything.
Please advise what to do. thanks
(venv) marcellomusarra@Marcellos-MacBook-Air hpd % pip list Package Version
aiofiles 22.1.0 aiosqlite 0.19.0 anyio 4.0.0 appnope 0.1.3 argon2-cffi 23.1.0 argon2-cffi-bindings 21.2.0 arrow 1.3.0 asttokens 2.4.1 attrs 23.1.0 Babel 2.13.1 backcall 0.2.0 beautifulsoup4 4.12.2 bleach 6.1.0 certifi 2023.7.22 cffi 1.16.0 charset-normalizer 3.3.1 comm 0.1.4 contourpy 1.1.1 cycler 0.12.1 debugpy 1.8.0 decorator 5.1.1 defusedxml 0.7.1 entrypoints 0.4 exceptiongroup 1.1.3 executing 2.0.1 fastjsonschema 2.18.1 fonttools 4.43.1 fqdn 1.5.1 idna 3.4 importlib-metadata 6.8.0 importlib-resources 6.1.0 ipykernel 6.26.0 ipython 8.12.3 ipython-genutils 0.2.0 ipywidgets 8.1.1 isoduration 20.11.0 jedi 0.19.1 Jinja2 3.1.2 json5 0.9.14 jsonpointer 2.4 jsonschema 4.19.1 jsonschema-specifications 2023.7.1 jupyter_client 7.4.9 jupyter_core 5.4.0 jupyter-events 0.8.0 jupyter_server 2.9.1 jupyter_server_fileid 0.9.0 jupyter_server_terminals 0.4.4 jupyter_server_ydoc 0.8.0 jupyter-ydoc 0.2.5 jupyterlab 3.6.6 jupyterlab-pygments 0.2.2 jupyterlab_server 2.25.0 jupyterlab-widgets 3.0.9 kiwisolver 1.4.5 MarkupSafe 2.1.3 matplotlib 3.7.3 matplotlib-inline 0.1.6 mistune 3.0.2 nbclassic 1.0.0 nbclient 0.7.4 nbconvert 7.9.2 nbformat 5.9.2 nest-asyncio 1.5.8 notebook 6.5.6 notebook_shim 0.2.3 numpy 1.24.4 overrides 7.4.0 packaging 23.2 pandas 2.0.3 pandocfilters 1.5.0 parso 0.8.3 pexpect 4.8.0 pickleshare 0.7.5 Pillow 10.1.0 pip 23.3.1 pkgutil_resolve_name 1.3.10 platformdirs 3.11.0 prometheus-client 0.17.1 prompt-toolkit 3.0.39 psutil 5.9.6 ptyprocess 0.7.0 pure-eval 0.2.2 pycparser 2.21 Pygments 2.16.1 pyparsing 3.1.1 python-dateutil 2.8.2 python-json-logger 2.0.7 pytz 2023.3.post1 PyYAML 6.0.1 pyzmq 24.0.1 referencing 0.30.2 requests 2.31.0 rfc3339-validator 0.1.4 rfc3986-validator 0.1.1 rpds-py 0.10.6 scipy 1.10.1 Send2Trash 1.8.2 setuptools 68.2.2 six 1.16.0 sniffio 1.3.0 soupsieve 2.5 stack-data 0.6.3 terminado 0.17.1 tinycss2 1.2.1 tomli 2.0.1 tornado 6.3.3 traitlets 5.12.0 types-python-dateutil 2.8.19.14 typing_extensions 4.8.0 tzdata 2023.3 uri-template 1.3.0 urllib3 2.0.7 voila 0.4.3 voila-gridstack 0.3.1 wcwidth 0.2.8 webcolors 1.13 webencodings 0.5.1 websocket-client 1.6.4 websockets 12.0 wheel 0.41.2 widgetsnbextension 4.0.9 y-py 0.6.2 ypy-websocket 0.8.4 zipp 3.17.0
It works well for me with voila 0.4.3, jupyterlab 3.6.5 and voila-gridstack 0.3.1
Thanks for that. I installed the same versions and I was able to get the same behaviour, but still, I have questions:
1) As you can see the resizing is not working, which means they just stack the widgets on top of each other (and control the width when you insert them. How can I create the dashboard in a full gridstack layout (not half screen), and resize as I wish ? 2) I have a dynamic function, which means I use decorators, therefore, the size of the box needs to change as it goes. This behaviour causes the frame to become scrollable instead of expanding. How can I address this please ? is there a way to fix the widget size in grisdstack, or be flex ? 3) Lastly, when you install jupyterlab 3.6.5 it comes with jupyterlab-server 2.25.0 and jupyterlab-widgets 3.0.9. why did you downgrade them please ? Which version of ipywidgets are you using ? when installing pip install ipywidgets, it comes with version 8.1.1 which requires jupyterlab-widgets~=3.0.9. please clarify. thanks again for the support.
hi, i tried running voila gridstack but i'm unable to do so, some assistance will be greatly appreciated !
(base) C:\Users\tyann>voila FYP0315.ipynb --template=gridstack [Voila] Using C:\Users\tyann\AppData\Local\Temp to store connection files [Voila] Storing connection files in C:\Users\tyann\AppData\Local\Temp\voila_0zi_f88k. [Voila] Serving static files from C:\Users\tyann\anaconda3\lib\site-packages\voila\static. [Voila] Voilà is running at: http://localhost:8866/ ERROR:tornado.application:Uncaught exception GET / (::1) HTTPServerRequest(protocol='http', host='localhost:8866', method='GET', uri='/', version='HTTP/1.1', remote_ip='::1') Traceback (most recent call last): File "C:\Users\tyann\anaconda3\lib\site-packages\tornado\web.py", line 1704, in _execute result = await result File "C:\Users\tyann\anaconda3\lib\site-packages\voila\handler.py", line 163, in get async for html_snippet, resources in self.exporter.generate_from_notebook_node(notebook, resources=resources, extra_context=extra_context): File "C:\Users\tyann\anaconda3\lib\site-packages\voila\exporter.py", line 100, in generate_from_notebook_node async for output in self.template.generate_async(nb=nb_copy, resources=resources, **extra_context, static_url=self.static_url): File "C:\Users\tyann\anaconda3\lib\site-packages\nbconvert\exporters\templateexporter.py", line 151, in template self._template_cached = self._load_template() File "C:\Users\tyann\anaconda3\lib\site-packages\nbconvert\exporters\templateexporter.py", line 362, in _load_template return self.environment.get_template(template_file) File "C:\Users\tyann\anaconda3\lib\site-packages\jinja2\environment.py", line 883, in get_template return self._load_template(name, self.make_globals(globals)) File "C:\Users\tyann\anaconda3\lib\site-packages\jinja2\environment.py", line 857, in _load_template template = self.loader.load(self, name, globals) File "C:\Users\tyann\anaconda3\lib\site-packages\jinja2\loaders.py", line 429, in load raise TemplateNotFound(name) jinja2.exceptions.TemplateNotFound: index.html.j2 ERROR:tornado.access:500 GET / (::1) 9318.31ms