conda 更新后,使用 matplotlib 时 python 内核崩溃
- 2025-02-11 09:50:00
- admin 原创
- 151
问题描述:
我已经使用以下命令创建了这个简单的环境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
,我不知道在哪里调查。
解决方案 1:
更新 2021-11-06
根据main / packages / freetype ,默认
pkgs/main
频道conda
已恢复为用于freetype 2.10.4
Windows 。如果仍然遇到问题,请使用
conda list freetype
检查版本:freetype != 2.11.0
如果是
2.11.0
,则根据解决方案更改版本,或者conda update --all
(假设您的默认频道在配置文件中没有更改.condarc
)。
解决方案
如果在安装Anaconda、更新
conda
或自 2021 年 10 月 27 日起出现这种情况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
。使用 更新后,任何 IDE(不仅仅是 )中
conda update --all
与 相关的任何内容都会出现问题。matplotlib
`Jupyter`我在、和命令提示符中对此进行
JupyterLab
了PyCharm
测试python
。PyCharm:
Process finished with exit code -1073741819
JupyterLab:内核刚刚重新启动,没有相关错误或回溯
命令提示符:将会短暂出现一个空白的交互式 matplotlib 窗口,然后出现一个新的命令行。
问题似乎出
conda update --all
在 中,因此任何使用(例如和)(base)
的绘图 API 都会在任何环境下终止内核。matplotlib
`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)}
问题似乎是
freetype
从降级到
2.11.0
解决2.10.4
了该问题并使环境正常运行matplotlib
去发布错误报告并发现有[Bug]: Matplotlib 导致 Python 崩溃 #21511
解决方案 2:
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\envs\你的环境名称\Library\bin\libiomp5md.dll
实际上降级freetype
对我来说不起作用。您可以将“libiomp5md.dll”添加回原始文件,它可以修复内核暂时死亡但导致 OMP 错误。
解决方案 3:
对于任何降级到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:
我遇到了同样的问题,经过大量调查和故障排除后,修复方法非常简单:
conda update -c anaconda numpy
conda upgrade -c conda-forge matplotlib
之后它运行良好并且我的视觉效果绘制没有问题。
扫码咨询,免费领取项目管理大礼包!