Matplotlib subplots导致Jupyter内核崩溃问题求助
解决自定义conda环境中plt.subplot引发内核崩溃的问题
环境前提
64位Windows10系统,自定义conda环境(Python3.8),已安装numpy、matplotlib、jupyter、tensorflow及依赖;运行含plt.subplot的代码时,执行前两个打印语句后内核崩溃;freetype版本为2.10.4(已排除2.11.0引发的已知问题);基础环境中matplotlib无异常,无法升级至Python3.9。
排查与修复步骤
1. 确认关键依赖版本
激活自定义环境后,执行以下命令查看核心包版本,排查依赖冲突:
conda activate 你的环境名称 conda list matplotlib conda list pyqt conda list qt
2. 重新安装指定版本的matplotlib
Python3.8与matplotlib 3.4.x版本兼容性更稳定,可避开部分依赖问题:
conda install matplotlib=3.4.3 -c conda-forge
3. 修复Qt/PyQt依赖问题
内核崩溃常与Qt后端冲突有关,可对齐基础环境的Qt版本:
- 先卸载现有Qt相关包:
conda remove pyqt qt --force - 安装与基础环境一致的版本(先在基础环境执行
conda list qt获取版本号,示例为5.12.9):conda install qt=5.12.9 pyqt=5.12.3 -c conda-forge
4. 切换matplotlib后端
临时切换后端测试是否为Qt后端导致的问题,在绘图代码开头添加:
import matplotlib matplotlib.use('TkAgg') import matplotlib.pyplot as plt
若测试正常,可修改matplotlib配置文件永久生效:
- 查找配置文件路径:
python -c "import matplotlib; print(matplotlib.matplotlib_fname())" - 打开文件后,将
backend:一行修改为backend: TkAgg
5. 命令行重建自定义环境
若以上方法无效,用conda命令行重建环境(避免Anaconda Navigator可能的依赖自动匹配问题):
conda create -n 新环境名称 python=3.8 numpy=1.21 matplotlib=3.4.3 jupyter tensorflow=2.5 -c conda-forge
验证测试
每次修改后,运行以下测试代码确认问题是否解决:
import matplotlib.pyplot as plt print("测试1") print("测试2") fig, ax = plt.subplots(2, 1) ax[0].plot([1, 2, 3]) ax[1].scatter([1, 2, 3], [4, 5, 6]) plt.show()
内容的提问来源于stack exchange,提问作者gay-victorian-astronomer
相关产品推荐
相关产品推荐

