相关疑难解决方法(0)

如何在Spyder(或任何其他调试器)的ipdb调试器中强制使用Matplotlib进行绘制?

编辑

不幸的是,目前这是不可能的.我发现这是Spyder的一个错误.开发人员仍在研究如何处理这个问题.


目标

在调试代码时可视化数据(我也想使用Spyder!).

尝试#1:从Spyder的IPython运行foo.bar

  • 使用以下代码创建名为foo.py的文件:

    from ipdb import set_trace as st
    import matplotlib.pyplot as plt
    
    def bar():
        st()
    
    Run Code Online (Sandbox Code Playgroud)
  • 在IPython中,键入以下内容:

    In [4]: import foo
    
    In [5]: foo.bar()
    --Return--
    None
    > somewhere_over_the_rainbow\foo.py(5)bar()
          3 
          4 def bar():
    ----> 5     st()
    
    ipdb> plt.plot([1, 2], [3, 4])
    [<matplotlib.lines.Line2D object at 0x05CA8E90>]
    ipdb> plt.show()
    
    Run Code Online (Sandbox Code Playgroud)

情节仍处于"冻结"状态.如果我退出调试器,则绘制更新.如果我试图关闭情节,IPython会崩溃.显然两者都不受欢迎,也不让我在调试时看到数据.

尝试#2:从命令行运行IPython中的foo.bar

  • 使用与尝试#1中相同的foo.py:
  • 从命令行打开IPython:

    In [4]: import foo
    
    In [5]: foo.bar()
    --Return--
    None
    > somewhere_over_the_rainbow\foo.py(5)bar()
          3
          4 def bar():
    ----> 5     st()
    
    ipdb> plt.plot([1, 2], …
    Run Code Online (Sandbox Code Playgroud)

python debugging matplotlib spyder pdb

18
推荐指数
3
解决办法
6922
查看次数

标签 统计

debugging ×1

matplotlib ×1

pdb ×1

python ×1

spyder ×1