我正在使用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台不同机器上会出现相同的行为。
让我发疯的是,它有时无需任何改动。
知道为什么会这样,以及如何解决这个问题?
环境:
更新 以下最小代码足以重现错误:
#!/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
答案 0 :(得分:2)
如果你在Python shell中遇到同样的错误:
import matplotlib.backends._tkagg
然后你必须安装Visual C++ Redistributable Packages。我有完全相同的问题并安装解决它。
我还必须这样做hidden-import以避免tkinter错误:
--hidden-import='PIL._tkinter._finder