IPython Notebook ipywidgets does not show
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)
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.
After googling for a while without hope, I realized that I need
jupyter labextension install @jupyter-widgets/jupyterlab-manager
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.
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.
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