After conda update, python kernel crashes when matplotlib is used

Update 2021-11-06

  • The default pkgs/main channel for conda has reverted to using freetype 2.10.4 for Windows, per main / packages / freetype.
  • If you are still experiencing the issue, use conda list freetype to check the version: freetype != 2.11.0
    • If it is 2.11.0, then change the version per the solution, or conda update --all (providing your default channel isn't changed in the .condarc config file).

Solution

  • If this is occurring after installing Anaconda, updating conda or freetype since Oct 27, 2021.
  • Go to the Anaconda prompt and downgrade freetype 2.11.0 in any affected environment.
    • conda install freetype=2.10.4
  • Relevant to any package using matplotlib and any IDE
    • For example, pandas.DataFrame.plot and seaborn
    • Jupyter, Spyder, VSCode, PyCharm, command line.

Discovery

  • An issue occurs after updating with the most current updates from conda, released Friday, Oct 29.
  • After updating with conda update --all, there's an issue with anything related to matplotlib in any IDE (not just Jupyter).
    • I tested this in JupyterLab, PyCharm, and python from the command prompt.
    • PyCharm: Process finished with exit code -1073741819
    • JupyterLab: kernel just restarts and there are no associated errors or Traceback
    • command prompt: a blank interactive matplotlib window will appear briefly, and then a new command line appears.
  • The issue seems to be with conda update --all in (base), then any plot API that uses matplotlib (e.g. seaborn and pandas.DataFrame.plot) kills the kernel in any environment.
  • I had to reinstall Anaconda, but do not do an update of (base), then my other environments worked.
  • I have not figured out what specifically is causing the issue.
  • I tested the issue with python 3.8.12 and python 3.9.7
  • Current Testing:
    • Following is the conda revision log.
    • Prior to conda update --all this environment was working, but after the updates, plotting with matplotlib crashes the python kernel
  2021-10-31 10:47:22  (rev 3)
     bokeh  {2.3.3 (defaults/win-64) -> 2.4.1 (defaults/win-64)}
     click  {8.0.1 (defaults/noarch) -> 8.0.3 (defaults/noarch)}
     filelock  {3.0.12 (defaults/noarch) -> 3.3.1 (defaults/noarch)}
     freetype  {2.10.4 (defaults/win-64) -> 2.11.0 (defaults/win-64)}
     imagecodecs  {2021.6.8 (defaults/win-64) -> 2021.8.26 (defaults/win-64)}
     joblib  {1.0.1 (defaults/noarch) -> 1.1.0 (defaults/noarch)}
     lerc  {2.2.1 (defaults/win-64) -> 3.0 (defaults/win-64)}
     more-itertools  {8.8.0 (defaults/noarch) -> 8.10.0 (defaults/noarch)}
     pyopenssl  {20.0.1 (defaults/noarch) -> 21.0.0 (defaults/noarch)}
     scikit-learn  {0.24.2 (defaults/win-64) -> 1.0.1 (defaults/win-64)}
     statsmodels  {0.12.2 (defaults/win-64) -> 0.13.0 (defaults/win-64)}
     sympy  {1.8 (defaults/win-64) -> 1.9 (defaults/win-64)}
     tqdm  {4.62.2 (defaults/noarch) -> 4.62.3 (defaults/noarch)}
     xlwings  {0.24.7 (defaults/win-64) -> 0.24.9 (defaults/win-64)}
  • The issue seems to be freetype
    • Downgrading from 2.11.0 to 2.10.4 resolved the issue and made the environment work with matplotlib
  • Went to post a bug report and discovered there is [Bug]: Matplotlib crashes Python #21511

I had the same issue and after a fair amount of investigation and troubleshooting, the fix was pretty straight forward:

conda update -c anaconda numpy

conda upgrade -c conda-forge matplotlib

After that it ran fine and my visuals plotted without issue.