pyinstaller有时找不到Matplotlib后端TkAgg

时间:2017-08-08 11:43:21

标签: python windows matplotlib pyinstaller

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

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

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

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

该过程仍然“成功”完成,但由于缺少库,我无法运行该工具。 偶尔(约20%的时间),库被找到('添加'),一切正常。 在具有相似环境的2台不同机器上会出现相同的行为。

让我发疯的是,它有时无需任何改动。

知道为什么会这样,以及如何解决这个问题?

环境:

  • Windows 7 sp1 64bit
  • python 3.5.0
  • pyQt 5
  • pyinstaller 3.2.1
  • matplotlib 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

1 个答案:

答案 0 :(得分:2)

如果你在Python shell中遇到同样的错误:

import matplotlib.backends._tkagg

然后你必须安装Visual C++ Redistributable Packages。我有完全相同的问题并安装解决它。

我还必须这样做hidden-import以避免tkinter错误:

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

This answer was the solution