pyinstaller 有时找不到 Matplotlib 后端 TkAgg



我正在使用pyinstaller为我们的PyQT工具打包Windows可执行文件。

pyinstaller.exe main.py --path path_to_pyqt_libs --distpath outputFolder --name toolName

5 次中有 4 次,该工具找不到 matplotlib 后端 TKagg:

19537 INFO:   Matplotlib backend "TkAgg": ignored
DLL load failed: The specified module could not be found.

该过程仍然"成功完成",但由于缺少库,我无法运行该工具。 偶尔(~20% 的时间(,找到库("添加"(,一切正常。 在具有相似环境的 2 台不同计算机上会发生相同的行为。

让我发疯的是,它有时无需任何更改即可工作。

知道为什么会发生这种情况以及如何解决这个问题吗?

环境:

  • 视窗 7 sp1 64 位
  • 蟒蛇 3.5.0
  • pyQt 5
  • pyinstaller 3.2.1
  • 马特普洛库 2.0.2

更新:以下最小代码足以重现错误:

#!/usr/bin/env python3
from PyQt5.uic import loadUiType
from matplotlib.backends.backend_qt5agg import (
FigureCanvasQTAgg as FigureCanvas,
NavigationToolbar2QT as NavigationToolbar)

if __name__ == '__main__':
pass

如果您在 Python shell 中执行此操作时遇到相同的错误:

import matplotlib.backends._tkagg

然后,您必须安装可视C++可再发行组件包。我遇到了完全相同的问题并安装了解决它的方法。

此外,我必须执行此隐藏导入以避免tkinter错误:

--hidden-import='PIL._tkinter._finder

这个答案就是解决方案

最新更新