我有一个程序集成了 tkinter GUI 和 matplotlib 图(使用 pyplot)。为了让这个程序在各种 Mac 平台上正常工作,我遇到了无尽的麻烦。主要问题似乎是后端的适当选择。
在某些情况下,程序运行良好没有问题。在其他情况下,我遇到了类似的问题这个问题。实施那里概述的解决方案可以解决该问题,但其他系统会弹出其他错误。这些其他错误的解决方案似乎是使用 Qt4Agg 后端。
必须有一些标准方法来让程序同时使用 tkinter 和 matplotlib 才能在 Mac 上正常运行。如何以编程方式确保使用正确的后端,以便 Mac 用户的程序不会崩溃?
抱歉,如果这很模糊,但这是一个非常广泛的问题。
看这个答案:如何在 matplotlib / Python 中切换后端
本质上,如果您不知道哪个backend
可用,以下代码应加载第一个backend
当前机器上可用。 (我只包含了 4 个后端,还有很多其他后端)。
import matplotlib
gui_env = ['TKAgg','GTKAgg','Qt4Agg','WXAgg']
for gui in gui_env:
try:
print("testing", gui)
matplotlib.use(gui,warn=False, force=True)
from matplotlib import pyplot as plt
break
except:
continue
print("Using:",matplotlib.get_backend())
Using: GTKAgg
更新:我相信 OSX 有一个名为MacOSX
可以将其添加到该列表中,尽管我自己无法对其进行测试。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)