IPython Notebook ipywidgets does not show

PythonJupyter NotebookIpywidgets

Python Problem Overview


I created a table with an interactive slider that allows me to toggle between different periods on my table. It was working for the past few days, until today, when I re-ran the notebook, the slide bar doesn't show anymore. No error messages appear. The code seem to run just fine, as the table appears, but the slide bar just doesn't appear. I didn't change my code either, as I was working on a separate part of my notebook.

I tried many approaches, including searching in this space but was still unable to come up with a solution. I was wondering if anyone faced a similar issue, and have any solution to this.

Below is my code snippet. Anything before was solely to get my data into the desired form for tabulation.

from IPython.display import display
from ipywidgets import widgets, interactive
v = interactive(by_q, quarter=(['q1y2015', 'q2y2015', 'q3y2015', 'q4y2015']), days=(1, 180))
display(v)

Python Solutions


Solution 1 - Python

With the new version of ipywidgets, I ran into this problem, but then I found on their github readme that you now need to follow

pip install ipywidgets

with

jupyter nbextension enable --py widgetsnbextension

Note: To those using virtual environments (including conda environments) the recommended way to activate the extension is to run

jupyter nbextension enable --py --sys-prefix widgetsnbextension

That cleared the problem up for me.

Solution 2 - Python

After googling for a while without hope, I realized that I need

jupyter labextension install @jupyter-widgets/jupyterlab-manager

Solution 3 - Python

If you've already got [an older version] of ipywidgets installed in Jupyter and you're seeing this problem (you'll probably be seeing javascript errors in the browser console) then you need to run the install command to update the relevant files e.g.:

jupyter nbextension install --user --py widgetsnbextension

And you may also need to rerun the enable command e.g.:

jupyter nbextension enable --user --py widgetsnbextension

Note: the --user argument may need to be different if you're using a virtualenv or other environment - see the ipywidget docs for more details.

Solution 4 - Python

Might have been a stupid mistake of mine, but in case you are using virtual environments, just keep properly in mind what is running from where.

You might properly run Jupyter from inside your current environment every time as needed, or might have a root env from which you always start the Jupyter you will end up using for all your environments.

For the latter case, what you need to be sure is to enable nbextension for the Jupyter you are actually running, instead of mistakenly run the command from within your currently active environment.

Solution 5 - Python

I think plot.ly imports a function called display which overrides the function display from ipython. Try changing the order of imports or simply import the function under a different name

Solution 6 - Python

Adding to Alexander Svetly's answer, running:

jupyter labextension install @jupyter-widgets/jupyterlab-manager

seemed to get stuck, by adding --debug I was able to see where:

jupyter labextension install --debug @jupyter-widgets/jupyterlab-manager
[...]
npm notice 📦  @jupyter-widgets/jupyterlab-manager@3.0.0-alpha.2
[...]
Fetching URL: https://registry.yarnpkg.com/@jupyter-widgets%2Fjupyterlab-manager

Looks like it's trying to install version 3 but I am using version 2.2.9 of Jupyter Lab, so what finally worked was:

jupyter nbextension enable --py widgetsnbextension --sys-prefix
jupyter labextension install --debug @jupyter-widgets/jupyterlab-manager@2.0

Solution 7 - Python

To all the folks coming from jupyterlab

Please check steps to make it work in Jupyter 3.0 docs

Please check steps to make it work in Jupyter 1 0r 2 docs

After this restart or build the lab to see the changes

Solution 8 - Python

Apparently, if you are trying to use it on the virtual environment and running on vscode , then jupyter notebook itself doesn't work that efficiently but it works on using ipython <notebook_name>, but in that case you won't be able to visualize widgets. So the best way is to do jupyter notebook <notebook name>, which will open notebook on chrome, and then change the kernel first, i.e. choose your virtual environment and run on the chrome.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionCliff ChewView Question on Stackoverflow
Solution 1 - PythonElaine HaleView Answer on Stackoverflow
Solution 2 - PythonasvetlyView Answer on Stackoverflow
Solution 3 - PythonPierzView Answer on Stackoverflow
Solution 4 - Python5agadoView Answer on Stackoverflow
Solution 5 - PythonnluigiView Answer on Stackoverflow
Solution 6 - PythonsplatteView Answer on Stackoverflow
Solution 7 - PythonPoorna PrudhviView Answer on Stackoverflow
Solution 8 - PythonEyshikaView Answer on Stackoverflow