我创建了一个应用程序,在选择一些文件并单击一个特定按钮后,它会使用matplotlib生成3到5个图(有些使用plotly)。对于这个GUI,我使用了Tkinter。
当我运行.py代码时,它完美地工作,按下按钮后会显示一个图表,然后在关闭窗口后会显示一个新的,依此类推,直到完成。
我尝试使用Py2exe和PyInstaller为此应用程序创建.exe文件。它们都具有相同的行为:按下按钮后会显示第一个图,但是当我关闭它的窗口时,不显示任何一个。只有在关闭创建的Tkinter窗口后(一个主框架创建另一个框架,其中有我点击的按钮用于显示图形),其他图形出现(第二个,然后关闭窗口后第三个,依此类推)。 / p>
有关此问题的任何线索?我也尝试了
import matplotlib
matplotlib.use('TkAgg')
没有成功。 TkAgg是用于生成.exe的(必须在matplotlibrc中更改它)。
代码运行方式如下:带有Tkinter功能的main_app,带有一些有用功能的second_app和只有一个Tkinter消息(如果满足条件)和一堆次要.py文件,每个文件都有自己的计算和图形
如果按下main_app中的按钮,它会调用这些次要.py文件(函数)中的一个特定的来计算和生成图。
答案 0 :(得分:0)
我遇到了同样的问题。我使用的是Python 3.4和PyInstaller 3.3,我会尝试一次制作几个图,但只有一个会显示,直到我关闭整个可执行文件(使用PyInstaller的--onefile选项)。我使用
解决了这个问题 plt.show(block=False)
而不是
plt.show()
在绘图时。这对我来说很有用,希望它可以帮到你!