【问题标题】:LLDB: is it possible to display graphics from lldb session?LLDB:是否可以显示来自 lldb 会话的图形?
【发布时间】:2016-04-16 16:18:26
【问题描述】:

我想显示来自 LLDB 会话的绘图,可以吗?

plt.figure()
plt.title('Test')
plt.imshow(array, cmap='gray')
plt.show()

现在,当我通过“命令脚本导入 ~/script.py”执行此操作时;会话卡住了!

【问题讨论】:

    标签: debugging lldb


    【解决方案1】:

    这在命令行 lldb 中可以正常工作(或者至少对我有用...)

    尝试与 Xcode 共享到 Window Server 的连接时它不起作用(因为 lldb 在 Xcode 应用程序进程中运行)并不完全令人惊讶。执行 plt.figure() 似乎停滞不前,尽管我并不清楚当您调用此方法时 Python 认为它在做什么。它并没有在明显的地方停滞。

    我不认为 lldb 与这种方式或其他方式有任何关系(特别是因为命令行 lldb 有效。)您更有可能通过询问 MatPlotLib 人员是否他们来弄清楚如何使其工作当 python 是嵌入式解释器时,有任何分享 GUI 的经验,尤其是在像 Xcode 这样复杂的东西中。

    您还可以查看他们是否有任何方法可以调用进程外渲染器。这可能会解决生活在 Xcode 中的复杂性。

    【讨论】:

    • 是的,让 python 解释器存在于 Xcode 进程中可能是这里的问题;真实的观察。
    【解决方案2】:

    我在 Xcode 中绘制自定义对象时遇到了类似的问题。调用 plt.plot() 时 lldb 会话崩溃。

    我将 matplotlib 与 Agg 后端一起使用,并且能够在方便的位置绘制和保存生成的图。但是,您将无法使用 Agg 后端直接从 Xcode 中的 lldb 显示它们。

    我的代码如下所示:

    import matplotlib
    matplotlib.use('Agg')
    import matplotlib.pyplot as plt
    import numpy as np
    
    
    plt.plot([1,2,3,4,5])
    plt.title("Title")
    plt.savefig("your/path")
    plt.close()
    

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多