pythonjupyter-notebookjupyter-labtqdm

Jupyter Notebooks not displaying progress bars


I'm trying to get a progress bar going in Jupyter notebooks. This is a new computer and what I normally do doesn't seem to work:

from tqdm import tqdm_notebook
example_iter = [1,2,3,4,5]
for rec in tqdm_notebook(example_iter):
    time.sleep(.1)

Produces the following text output and doesn't show any progress bar

HBox(children=(IntProgress(value=0, max=5), HTML(value='')))

Similarly, this code:

from ipywidgets import FloatProgress
from IPython.display import display
f = FloatProgress(min=0, max=1)
display(f)
for i in [1,2,3,4,5]:
    time.sleep(.1)

produces this text output:

FloatProgress(value=0.0, max=1.0)

Is there a setting I'm missing to get Jupyter to display these progress bars?


Solution

  • The answer is in this GitHub issue.

    The key is to ensure that you have the ipywidgets notebook extension enabled using the following command:

    jupyter nbextension enable --py widgetsnbextension
    

    For the old JupyterLab 2.0 you'll also need to install the JupyterLab extension:

    jupyter labextension install @jupyter-widgets/jupyterlab-manager
    

    For the old JupyterLab 2.0 installing the JupyterLab extension with the command above requires that you have Node.js installed. The installer from the Node.js website includes npm, which is also required for the command to run properly.

    When using JupyterLab 3.0, the extension will be auto-installed together with ipywidgets when you install it with pip or conda. Node.js is no longer required for JupyterLab 3.0.