gpt4 book ai didi

python-3.x - Python + matplotlib 中的自动补全导致 'RuntimeError: main thread not in main loop'

转载 作者:行者123 更新时间:2023-12-02 01:08:55 29 4
gpt4 key购买 nike

我正在使用带有默认 matplotlib 后端“TKAgg”的 Ipython3 和 virtualenv 绘制一些数据。我有一个 plot_script 可以绘制我的数据,在新窗口中显示它并且可以工作一段时间。然后,当我使用 Tab 键自动完成语句时,它会随机地抛出链接图片中显示的错误消息。当我使用 Agg 后端时,它会正常工作,但这变得非常乏味,因为我需要检查数据(放大等)。

Screenshot of the Ipython Window

我意识到我可能不理解线程是如何工作的,但是在 plot_script 中使用非常简单的函数时,不应该有一种方法来获取 GUI 窗口。基本上,我只是用 plot_script.plot_something(pd.DataFrame) 调用函数并显示绘图:

from matplotlib import pyplot as plt

def plot_something(data):
fig, ax = plt.subplots(2,2)
.... # Plot something
fig.savefig()
plt.show()

plt.close(fig)
fig.clear()

如何将绘图移至主循环,这是 ipython 的问题吗?

最佳答案

您可能需要激活正确的 matplotlib 和 tk 事件循环。这可以使用 %gui magic 来完成在一般情况下使用 %gui tk,在 matplotlib 的情况下,一些额外的设置是通过 %matplotlib magic 完成的,可能在您的情况下使用 %matplotlib tk

有许多其他库可以触发此类问题,但尚无答案,特别是将 OpenCV 与终端 IPython 一起使用会使主线程崩溃,但不是以可重现的方式,尚未调试和修复.

如果使用魔法无法解决问题,请随时在 IPython 跟踪器上打开一个错误。

关于python-3.x - Python + matplotlib 中的自动补全导致 'RuntimeError: main thread not in main loop',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46111346/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com