You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

IPython控制台调用matplotlib.pyplot出现Bus error (core dumped)求助

嘿,针对你在Ubuntu 16.04的Anaconda环境下,IPython控制台用matplotlib绘图频繁出现Bus error (core dumped)的问题——毕竟Jupyter里用%matplotlib inline完全正常,你怀疑Qt5的问题确实很有道理。结合你的情况,我整理了几个针对性的排查和解决方法,你可以一步步试试:

排查与解决步骤

1. 临时切换matplotlib后端测试

既然Jupyter的inline后端没问题,你可以在IPython控制台里手动指定非Qt的后端快速验证:

  • 启动IPython后,依次输入:

    import matplotlib
    matplotlib.use('Agg')  # 也可以试试'TkAgg',取决于你系统的支持情况
    import matplotlib.pyplot as plt
    

    然后尝试绘制简单图表(比如plt.plot([1,2,3])),如果不再报错,那基本可以确认是Qt后端的兼容性问题。

    要是临时切换有效,还能把这个配置永久生效:

    • 先找到matplotlib的配置文件路径:
      import matplotlib
      print(matplotlib.matplotlib_fname())
      
    • 打开这个文件,找到backend一行,修改为backend: Agg或者backend: TkAgg,保存后重启IPython即可。

2. 重装Anaconda的Qt相关依赖包

大概率是Qt5或PyQt的包损坏、版本不兼容导致的,试试重装相关组件:

  • 打开终端,先激活你的Anaconda环境(如果用了虚拟环境),然后执行:
    conda remove qt pyqt
    conda install qt pyqt
    
    要是重装最新版还是有问题,可以指定适配Ubuntu 16.04的稳定版本:
    conda install qt=5.9 pyqt=5.9
    
    重装完成后重启IPython再测试绘图。

3. 补充系统级Qt依赖

Anaconda的Qt可能和Ubuntu 16.04系统自带的Qt组件有冲突,试试安装系统级的Qt5依赖:

  • 在终端执行:
    sudo apt-get install qt5-default libqt5gui5 libqt5core5a libqt5widgets5
    
    安装完成后再启动IPython测试。

4. 用IPython魔法命令默认切换后端

你也可以直接用IPython的魔法命令设置默认后端,避免每次手动切换:

  • 在IPython里输入:
    %matplotlib agg  # 或者%matplotlib tk
    
    测试绘图正常后,还能把这个配置加到IPython的默认启动项里:
    • 先生成IPython配置文件(如果还没有):
      ipython profile create
      
    • 打开~/.ipython/profile_default/ipython_config.py,添加一行:
      c.InteractiveShellApp.matplotlib = 'agg'
      
    保存后重启IPython,每次启动就会自动加载这个后端。

5. 对比两台笔记本的环境细节

既然另一台配置相同的电脑能正常运行,你可以对比两者的环境差异定位问题:

  • 分别在两台电脑执行conda list,导出环境列表,对比Qt、PyQt、matplotlib的版本是否完全一致;
  • 检查IPython的配置文件内容是否相同;
  • 执行dpkg -l | grep qt5,对比两台电脑的系统级Qt包版本。

内容的提问来源于stack exchange,提问作者Justin Solms

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 08:02:15