ImportError: IProgress not found. Please update jupyter and ipywidgets although it is installed

okuoub picture okuoub · Jun 16, 2021 · Viewed 15.8k times · Source

I am using jupyter notebook and installed

ipywidgets==7.4.2 widgetsnbextension pandas-profiling=='.0.0

and also I ran:

!jupyter nbextension enable --py widgetsnbextension

but when runninhg

from pandas_profiling import ProfileReport
profile = ProfileReport(df, title="Pandas Profiling Report", explorative=True)
profile.to_widgets()

I get the error:

ImportError: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html

Any idea why? Tried proposed solutions.

Answer

bruno-uy picture bruno-uy · Jun 21, 2021

I tried everything you mentioned in a new environment using conda and I had another issue related to the version of ipywidgets (a bug found in Github with comments saying that got solved after using last version). I solved the problem I had installing last version of ipywidgets. Here is my process:

  1. Create a new environment using conda (I use miniconda):
conda create --name teststackoverflow python=3.7
  1. Activate new environment:
conda activate teststackoverflow
  1. Install jupyter:
pip install jupyter
  1. Install all the libraries without specific versions to get the last ones:
pip install ipywidgets widgetsnbextension pandas-profiling
  1. Run jupyter notebook in the console to turn on the notebooks server and create a new notebook.
  2. Run this line in a new cell:
!jupyter nbextension enable --py widgetsnbextension

With the result:

Enabling notebook extension jupyter-js-widgets/extension...
      - Validating: OK
  1. Run some sample code to define df:
import pandas as pd
df = pd.DataFrame({'A': [1, 2, 3, 4], 'B': [1, 2, 3, 4]})
  1. Run the code you provided:
from pandas_profiling import ProfileReport
profile = ProfileReport(df, title="Pandas Profiling Report", explorative=True)
profile.to_widgets()

Final output looks good: Final result of running step number 8