conda更新后,使用matplotlib时python内核崩溃

问题描述 投票:0回答:5

我用

conda
创建了这个简单的环境:

conda create -n test python=3.8.5 pandas scipy numpy matplotlib seaborn jupyterlab

jupyter lab
中的以下代码会使内核崩溃:

import matplotlib.pyplot as plt

plt.subplot()

我在

Linux
上没有遇到问题。问题是当我试戴时
Windows 10

jupyter lab
控制台(我启动服务器的地方)上没有错误,我不知道在哪里调查。

python windows matplotlib conda freetype
5个回答
74
投票

更新2021-11-06

  • 对于 Windows,
    pkgs/main
    的默认
    conda
    通道已恢复为使用
    freetype 2.10.4
    ,根据 main / packages / freetype
  • 如果您仍然遇到问题,请使用
    conda list freetype
    检查版本:
    freetype != 2.11.0
    • 如果是
      2.11.0
      ,则根据解决方案更改版本,或
      conda update --all
      (前提是您的默认频道未在
      .condarc
      配置文件中更改)。

解决方案

  • 如果自 2021 年 10 月 27 日起安装 Anaconda、更新
    conda
    freetype
    后发生这种情况。
  • 在任何受影响的环境中转至
    Anaconda
    提示并降级
    freetype 2.11.0
    • conda install freetype=2.10.4
  • 与使用
    matplotlib
    的任何软件包和任何 IDE 相关
    • 例如,
      pandas.DataFrame.plot
      seaborn
    • Jupyter、Spyder、VSCode、PyCharm、命令行。

发现

  • 使用 10 月 29 日星期五发布的
    conda
    的最新更新进行更新后出现问题。
  • 使用
    conda update --all
    更新后,任何 IDE(不仅仅是
    matplotlib
    )中与
    Jupyter
    相关的任何内容都会出现问题。
    • 我在命令提示符下的
      JupyterLab
      PyCharm
      python
      中对此进行了测试。
    • PyCharm:
      Process finished with exit code -1073741819
    • JupyterLab:内核刚刚重新启动,没有相关错误或回溯
    • 命令提示符:将短暂出现一个空白的交互式 matplotlib 窗口,然后出现一个新的命令行。
  • 问题似乎出在
    conda update --all
    中的
    (base)
    ,然后任何使用
    matplotlib
    的绘图 API(例如
    seaborn
    pandas.DataFrame.plot
    )都会在任何环境中杀死内核。
  • 我必须重新安装 Anaconda,但是 不要更新
    (base)
    ,然后我的其他环境就可以工作了。
  • 我还没有弄清楚具体是什么导致了这个问题。
  • 我用
    python 3.8.12
    python 3.9.7
  • 测试了这个问题
  • 当前测试:
    • 以下是
      conda
      修订日志。
    • conda update --all
      之前,此环境正常工作,但更新后,使用
      matplotlib
      进行绘图会导致 python 内核崩溃
  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)}

4
投票

对于任何降级到

freetype=2.10.4
不起作用的人。就我而言,问题是在从
scikit-learn=1.11
频道安装新版本的
conda-forge
后发生的。在尝试了多种选择后,以下对我有用:

  • numpy
    main/pkg
    重新安装到
    conda-forge
    频道
  • 重新安装
    mkl
    软件包
    conda -c intel mkl
  • matplotlib=4.3
    重新安装 
    conda-forge

这是一项相当严厉的措施,因为你必须重新安装所有依赖 NumPy 的依赖项(Pandas、TensorFlow 等),但这是唯一对我有用的依赖项。


4
投票

2023 年 3 月 2 日更新:

这是我的内核死后捕获的输出:

OMP:错误#15:正在初始化libiomp5md.dll,但发现libiomp5md.dll 已经初始化了。

OMP:提示:这意味着 OpenMP 运行时的多个副本具有 已链接到程序中。这是危险的,因为它会降解 性能或导致不正确的结果。最好的办法就是 确保只有一个 OpenMP 运行时链接到进程中, 例如通过避免在任何库中静态链接 OpenMP 运行时。 作为不安全、不受支持、无文档记录的解决方法,您可以设置 环境变量 KMP_DUPLICATE_LIB_OK=TRUE 允许程序 继续执行,但这可能会导致崩溃或默默产生 结果不正确。欲了解更多信息,请参阅 http://www.intel.com/software/products/support/

我遇到了类似的问题,我通过从 Anaconda 环境文件夹路径此目录中删除 libiomp5md.dll 重复文件来修复它:

C:\Users\你的用户名.conda nvs\your_env_name\Library in\libiomp5md.dll

实际上降级

freetype
对我来说不起作用。 您可以将“libiomp5md.dll”添加回原始文件,它可以修复内核暂时死亡但导致OMP错误的问题。


1
投票

我遇到了同样的问题,经过大量的调查和故障排除后,修复非常简单:

conda update -c anaconda numpy

conda upgrade -c conda-forge matplotlib

之后它运行良好,我的视觉效果绘制没有问题。


0
投票

只有这个命令解决了我的问题

 pip install numpy --upgrade
© www.soinside.com 2019 - 2024. All rights reserved.